Functions
List
int _err_subsystem_cache ()
int _err_subsystem_cache ()
int eprintf (int tag , int number , char const * , ... )
void eprintf_devel (int tag , int number , char const * , ... )
void err_abort (int tag , int orig_tag , int number , err_location_t const * , char const * text )
void err_add_callback (int tags , int priority , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback2_voidp_t , void * , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback2_int_t , int , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback2_t , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback0_voidp_t , void * , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback0_int_t , int , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback0_t , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback2_info_voidp_t , void * , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback2_info_int_t , int , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback2_info_t , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback0_info_voidp_t , void * , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback0_info_int_t , int , err_style_t const * )
void err_add_callback (int tags , int priority , err_callback0_info_t , err_style_t const * )
void err_add_callback0 (int tags , int priority , err_callback0_t , err_style_t const * )
void err_add_callback0_info (int tags , int priority , err_callback0_info_t , err_style_t const * )
void err_add_callback0_info_int (int tags , int priority , err_callback0_info_int_t , int , err_style_t const * )
void err_add_callback0_info_voidp (int tags , int priority , err_callback0_info_voidp_t , void * , err_style_t const * )
void err_add_callback0_int (int tags , int priority , err_callback0_int_t , int , err_style_t const * )
void err_add_callback0_voidp (int tags , int priority , err_callback0_voidp_t , void * , err_style_t const * )
void err_add_callback2 (int tags , int priority , err_callback2_t , err_style_t const * )
void err_add_callback2_info (int tags , int priority , err_callback2_info_t , err_style_t const * )
void err_add_callback2_info_int (int tags , int priority , err_callback2_info_int_t , int , err_style_t const * )
void err_add_callback2_info_voidp (int tags , int priority , err_callback2_info_voidp_t , void * , err_style_t const * )
void err_add_callback2_int (int tags , int priority , err_callback2_int_t , int , err_style_t const * )
void err_add_callback2_voidp (int tags , int priority , err_callback2_voidp_t , void * , err_style_t const * )
void err_add_count (err_status_t , int number , int val )
void err_add_message_count (err_status_t , int number , int val )
void err_add_stream (int tags , FILE * stream , err_style_t const * = NULL )
err_location_t * err_at_address (err_address_t )
err_location_t * err_at_ext_address (err_ext_address_t const * )
err_location_t * err_at_position (char const * , int , int )
void err_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int part , int tag )
void err_buffer_begin (err_buffer_t * buffer )
void err_buffer_end ()
void err_buffer_flush (err_buffer_t * buffer )
void err_buffer_re_issue (err_buffer_t * buffer )
void err_clear_all_count (err_status_t )
void err_clear_callback (int tags , int priority )
void err_clear_count (err_status_t , int number )
void err_clear_message_count (err_status_t , int number )
char const * err_config_prefix ()
int err_count (err_status_t , int tag = C_TAG_ERRORS )
void err_crash_aux ()
char const * err_decision_to_char_p (err_decision_t )
int err_declare_subsystem (char const * name )
void err_do_count (int tag , int number , err_status_t )
void err_end_part (err_markup_t * , err_v_char_t * )
void err_erase_prefix ()
void err_erase_suffix ()
void err_exit_1 (int tag , int orig_tag , int number , err_location_t const * , char const * text )
void err_ext_address_init (err_ext_address_t * , err_ext_address_class_t const * )
int err_fatal_count (err_status_t , int number )
int err_fatal_message_count (err_status_t , int number )
void err_flush_buffers ()
int err_fprintf_tag ()
void err_fprintf_tag_set (int tag )
void err_get_envvar_global (ErrVChar * result , char const * prefix )
void err_get_envvar_local (ErrVChar * result , char const * prefix )
ErrFormattedStream * err_get_stream (FILE * )
ErrFormattedStream * err_get_stream_by_name (char const * )
int err_group (char const * name )
char const * err_group_get_prefix (int tag )
char const * err_group_name (int tag )
void err_group_set_prefix (int tag , char const * prefix )
err_location_t * err_in_file (char const * )
err_location_t * err_in_line (char const * , int )
void err_init (int * , char ** * )
ERR_BOOL err_is_buffered (int tag , int number )
ERR_ERWIN_BOOL err_is_issued (int tag , int number )
ERR_ERWIN_BOOL err_is_printed (FILE * , int tag , int number )
ERR_ERWIN_BOOL err_is_seen (int tag , int number )
ERR_ERWIN_BOOL err_is_shown (int tag , int number )
void err_issue (int tags , err_decision_t show )
void err_issue_devel (int tags , err_decision_t show )
void err_issue_message (int number , err_decision_t show )
err_location_t * err_location_copy (err_location_t const * )
void err_location_delete (err_location_t * )
void err_markup_none_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int , int )
char const * err_markup_none_color (err_markup_t * , int , int , ERR_ERWIN_BOOL )
void err_markup_plain_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int , int )
char const * err_markup_plain_color (err_markup_t * , int , int , ERR_BOOL )
void err_markup_qt3_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int , int )
char const * err_markup_qt3_color (err_markup_t * , int , int , ERR_BOOL )
int err_message_count (err_status_t , int number )
err_ext_address_t * err_normal_address_clone (err_ext_address_t const * )
void err_normal_address_destruct (err_ext_address_t * )
void err_normal_address_format (err_v_char_t * , err_ext_address_t const * , err_preposition_t )
void err_normal_address_format_ext (err_v_char_t * , err_ext_address_t const * , err_preposition_t , err_format_style_t )
void err_normal_address_format_preposition (err_v_char_t * , err_preposition_t )
err_address_t err_normal_address_to_linear (err_ext_address_t const * )
void err_open_markup (err_markup_t * , err_v_char_t * , int , int )
void err_opt_parse (int * argc_p , char ** * argv_p , char const * prefix , ErrProcessOption callback )
void err_opt_parse_args (int * argc_p , char ** * argv_p , char const * prefix , ErrProcessOption callback )
void err_opt_parse_string (char const * envstr , ErrProcessOption callback )
err_location_t * err_originally_at_address (err_location_t * , err_address_t )
err_location_t * err_originally_at_ext_address (err_location_t * , err_ext_address_t const * )
err_location_t * err_originally_at_position (err_location_t * , char const * , int , int )
err_location_t * err_originally_in_file (err_location_t * , err_location_t * , char const * )
err_location_t * err_originally_in_line (err_location_t * , char const * , int )
int err_pid ()
int err_position_pieces (err_position_t const * )
void err_print (FILE * file , int tags , err_decision_t print )
void err_print_devel (FILE * file , int tags , err_decision_t print )
void err_print_message (FILE * stream , int number , err_decision_t print )
void err_print_once (FILE * , int tags , err_decision_t print , err_symtab_t * table = NULL )
void err_print_once_devel (FILE * , int tags , err_decision_t print , err_symtab_t * table = NULL )
void err_print_once_message (FILE * , int number , err_decision_t print , err_symtab_t * table = NULL )
char const * err_progname ()
void err_re_issue (err_message_t * )
void err_remove_callback (int tags , int priority , void * function )
void err_remove_callback (int tags , int priority , err_callback2_voidp_t function )
void err_remove_callback (int tags , int priority , err_callback2_voidp_t function , void * data )
void err_remove_callback (int tags , int priority , err_callback0_voidp_t function )
void err_remove_callback (int tags , int priority , err_callback0_voidp_t function , void * data )
void err_remove_callback (int tags , int priority , err_callback2_info_voidp_t function )
void err_remove_callback (int tags , int priority , err_callback2_info_voidp_t function , void * data )
void err_remove_callback (int tags , int priority , err_callback0_info_voidp_t function )
void err_remove_callback (int tags , int priority , err_callback0_info_voidp_t function , void * data )
void err_remove_callback (int tags , int priority , err_callback2_int_t function )
void err_remove_callback (int tags , int priority , err_callback2_int_t function , int data )
void err_remove_callback (int tags , int priority , err_callback0_int_t function )
void err_remove_callback (int tags , int priority , err_callback0_int_t function , int data )
void err_remove_callback (int tags , int priority , err_callback2_info_int_t function )
void err_remove_callback (int tags , int priority , err_callback2_info_int_t function , int data )
void err_remove_callback (int tags , int priority , err_callback0_info_int_t function )
void err_remove_callback (int tags , int priority , err_callback0_info_int_t function , int data )
void err_remove_callback (int tags , int priority , err_callback2_t function )
void err_remove_callback (int tags , int priority , err_callback0_t function )
void err_remove_callback (int tags , int priority , err_callback2_info_t function )
void err_remove_callback (int tags , int priority , err_callback0_info_t function )
void err_remove_callback_function (int tags , int priority , err_function_ptr_t function )
void err_remove_callback_int (int tags , int priority , err_function_ptr_t function , int user_data )
void err_remove_callback_void (int tags , int priority , err_function_ptr_t function )
void err_remove_callback_voidp (int tags , int priority , err_function_ptr_t function , void * user_data )
void err_remove_stream (int tags , FILE * stream )
void err_reset_stream (FILE * )
err_location_t const * err_resolve_address (int tag , int orig_tag , int number , err_location_t const * )
void err_set_at_position (err_position_t * , char const * , int , int )
void err_set_config_prefix (char const * )
void err_set_count (err_status_t , int number , int val )
void err_set_fatal_count (err_status_t , int tag , int cnt )
void err_set_fatal_message_count (err_status_t , int number , int cnt )
void err_set_in_file (err_position_t * , char const * )
void err_set_in_line (err_position_t * , char const * , int )
void err_set_message_count (err_status_t , int number , int val )
err_location_t * err_set_next_loc (err_location_t * , err_location_t const * , err_location_printer_t )
void err_set_next_location (err_location_t const * )
void err_set_pid (int pid )
void err_set_progname (char const * )
void err_set_quiet_level (int )
void err_set_quiet_level_devel (int )
void err_set_resolve_address (ErrAddressResolver )
void err_set_subsystem_callback (int subsystem , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback2_voidp_t , void * , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback2_int_t , int , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback2_t , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback0_voidp_t , void * , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback0_int_t , int , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback0_t , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback2_info_voidp_t , void * , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback2_info_int_t , int , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback2_info_t , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback0_info_voidp_t , void * , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback0_info_int_t , int , err_style_t const * )
void err_set_subsystem_callback (int subsystem , err_callback0_info_t , err_style_t const * )
void err_set_subsystem_callback0 (int subsystem , err_callback0_t , err_style_t const * )
void err_set_subsystem_callback0_int (int subsystem , err_callback0_int_t , err_style_t const * , int )
void err_set_subsystem_callback0_voidp (int subsystem , err_callback0_voidp_t , err_style_t const * , void * )
void err_set_subsystem_callback2 (int subsystem , err_callback2_t , err_style_t const * )
void err_set_subsystem_callback2_int (int subsystem , err_callback2_int_t , err_style_t const * , int )
void err_set_subsystem_callback2_voidp (int subsystem , err_callback2_voidp_t , err_style_t const * , void * )
void err_show (int tags , err_decision_t show )
void err_show_devel (int tags , err_decision_t show )
void err_show_message (int number , err_decision_t show )
ERR_BOOL err_stream_set_name (FILE * stream , char const * name )
void err_stream_set_quiet_level (FILE * , int )
void err_stream_set_quiet_level_devel (FILE * , int )
void err_stream_set_style (FILE * stream , err_style_t const * style )
void err_style_colon_format (err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
int err_style_colon_format_address_range (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_location_t const * )
int err_style_colon_format_area (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
int err_style_colon_format_flp (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , ERR_ERWIN_BOOL hide_file , ERR_ERWIN_BOOL hide_line , char const * file , int line , int pos )
void err_style_colon_format_marked_up (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
int err_style_colon_format_position (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , ERR_ERWIN_BOOL hide_file , ERR_ERWIN_BOOL hide_line , err_position_t const * loc )
int err_style_colon_format_progname (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , char const * progname , char const * hostname , int pid )
int err_style_colon_format_tag (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , int number )
err_v_char_t * err_style_colon_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
void err_style_default_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
err_v_char_t * err_style_default_post_format (err_formatted_stream_t * , int , int , err_v_char_t const * )
err_style_t const * err_style_from_int (int )
err_style_t const * err_style_from_string (char const * )
int err_style_from_string_to_int (char const * )
void err_style_none_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
err_v_char_t * err_style_none_post_format (err_formatted_stream_t * , int , int , err_v_char_t const * )
void err_style_plain_append_cr_perhaps (err_v_char_t * , ERR_BOOL loc_valid , int * nentries , char const * text )
void err_style_plain_format (err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
int err_style_plain_format_address_range (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
int err_style_plain_format_area (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
void err_style_plain_format_marked_up (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
int err_style_plain_format_progname (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , char const * progname , char const * hostname , int pid )
int err_style_plain_format_tag (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , int number )
int err_style_plain_format_time (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , time_t time )
err_v_char_t * err_style_plain_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
void err_style_qt3_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
err_v_char_t * err_style_qt3_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
void err_style_qt_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
err_v_char_t * err_style_qt_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
void err_style_quotes_append_shell_quoted (err_v_char_t * , char const * )
void err_style_quotes_format (err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
int err_style_quotes_format_address_range (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_location_t const * )
int err_style_quotes_format_area (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
void err_style_quotes_format_marked_up (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
int err_style_quotes_format_progname (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , char const * progname , char const * hostname , int pid )
int err_style_quotes_format_tag (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , int number )
err_v_char_t * err_style_quotes_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
void err_style_simple_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
err_v_char_t * err_style_simple_post_format (err_formatted_stream_t * , int , int , err_v_char_t const * )
int err_subsystem (char const * name )
char const * err_subsystem_name (int tag )
err_symbol_t err_tag_abbreviation (int tag )
char const * err_tag_description (ERR_BOOL * initial_vowel , int tag , ERR_BOOL plural )
char const * err_tag_qt (int tag )
char const * err_tag_string (int tag )
void err_unset_all_fatal_count (err_status_t )
void err_unset_all_fatal_message_count (err_status_t )
void err_unset_fatal_count (err_status_t , int tag )
void err_unset_fatal_message_count (err_status_t , int number )
void err_unset_resolve_address ()
void err_unset_subsystem_callback (int subsystem )
err_location_t * err_upto_address (err_location_t * , err_address_t )
err_location_t * err_upto_ext_address (err_location_t * , err_ext_address_t const * )
err_location_t * err_upto_file (err_location_t * , char const * )
err_location_t * err_upto_line (err_location_t * , char const * , int )
err_location_t * err_upto_position (err_location_t * , char const * , int , int )
int fleprintf (int tag , int number , char const * file , int line , char const * , ... )
void fleprintf_devel (int tag , int number , char const * file , int line , char const * , ... )
int flpeprintf (int tag , int number , char const * file , int line , int pos , char const * , ... )
void flpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , ... )
int foxprintf (FILE * , int , char const * format , ... )
int fxprintf (FILE * , char const * format , ... )
int leprintf (int tag , int number , err_location_t const * , char const * , ... )
void leprintf_devel (int tag , int number , err_location_t const * , char const * , ... )
int oeprintf (int tag , int number , int options , char const * , ... )
void oeprintf_devel (int tag , int number , int options , char const * , ... )
int ofleprintf (int tag , int number , int options , char const * file , int line , char const * , ... )
void ofleprintf_devel (int tag , int number , int options , char const * file , int line , char const * , ... )
int oflpeprintf (int tag , int number , int options , char const * file , int line , int pos , char const * , ... )
void oflpeprintf_devel (int tag , int number , int options , char const * file , int line , int pos , char const * , ... )
int oleprintf (int tag , int number , int options , err_location_t const * , char const * , ... )
void oleprintf_devel (int tag , int number , int options , err_location_t const * , char const * , ... )
int oxprintf (int , char const * format , ... )
int qeprintf (int tag , int number , char const * , ... )
void qeprintf_devel (int tag , int number , char const * , ... )
int qfleprintf (int tag , int number , char const * file , int line , char const * , ... )
void qfleprintf_devel (int tag , int number , char const * file , int line , char const * , ... )
int qflpeprintf (int tag , int number , char const * file , int line , int pos , char const * , ... )
void qflpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , ... )
int qleprintf (int tag , int number , err_location_t const * , char const * , ... )
void qleprintf_devel (int tag , int number , err_location_t const * , char const * , ... )
int snoxprintf (char * , int , int , char const * format , ... )
int snxprintf (char * , int , char const * format , ... )
int veprintf (int tag , int number , char const * , va_list )
void veprintf_devel (int tag , int number , char const * , va_list )
int vfleprintf (int tag , int number , char const * file , int line , char const * , va_list )
void vfleprintf_devel (int tag , int number , char const * file , int line , char const * , va_list )
int vflpeprintf (int tag , int number , char const * file , int line , int pos , char const * , va_list )
void vflpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , va_list )
int vfoxprintf (FILE * , int , char const * format , va_list )
int vfxprintf (FILE * , char const * format , va_list )
int vleprintf (int tag , int number , err_location_t const * , char const * , va_list )
void vleprintf_devel (int tag , int number , err_location_t const * , char const * , va_list )
int voeprintf (int tag , int number , int options , char const * , va_list )
void voeprintf_devel (int tag , int number , int options , char const * , va_list )
int vofleprintf (int tag , int number , int options , char const * file , int line , char const * , va_list )
void vofleprintf_devel (int tag , int number , int options , char const * file , int line , char const * , va_list )
int voflpeprintf (int tag , int number , int options , char const * file , int line , int pos , char const * , va_list )
void voflpeprintf_devel (int tag , int number , int options , char const * file , int line , int pos , char const * , va_list )
int voleprintf (int tag , int number , int options , err_location_t const * , char const * , va_list )
void voleprintf_devel (int tag , int number , int options , err_location_t const * , char const * , va_list )
int voxprintf (int , char const * format , va_list )
int vqeprintf (int tag , int number , char const * , va_list )
void vqeprintf_devel (int tag , int number , char const * , va_list )
int vqfleprintf (int tag , int number , char const * file , int line , char const * , va_list )
void vqfleprintf_devel (int tag , int number , char const * file , int line , char const * , va_list )
int vqflpeprintf (int tag , int number , char const * file , int line , int pos , char const * , va_list )
void vqflpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , va_list )
int vqleprintf (int tag , int number , err_location_t const * , char const * , va_list )
void vqleprintf_devel (int tag , int number , err_location_t const * , char const * , va_list )
int vsnoxprintf (char * , int , int , char const * format , va_list )
int vsnxprintf (char * , int , char const * format , va_list )
int vxprintf (char const * format , va_list )
int xprintf (char const * format , ... )
Detailed Descriptions
extern void err_init (int * , char ** * )
Set-up
In contrast to many other libraries that use Erwin, the invocation
of this function is not needed. However, the error output is
improved if you invoke this (e.g., the program name is output).
If you do not invoke this, then the library also sets up a default
output stream to stderr. This is convenient for testing (simply
link -lerror and there you go).
Furthermore, if you do not invoke err_init (), you are only allowed
*printf functions, but no other functions from this library.
In total, it is highly advisable to invoke err_init () at the beginning
of your program.
Typical invocation:
err_init (&argc, &argv);
If you want a progname different from the base name in argv[0] (under DOS
without .exe), then invoke err_set_progname with the desired name.
Important Note
If you invoke err_init , then by default, no output stream is
set, so no error messages are ever seen! So typically, you
will set a default error stream directly after the above
invocation. E.g.:
err_add_stream (C_TAG_ALL, stderr, NULL);
Please only give a non-NULL error style if you know what
you are doing. E.g. if you do set the style here,
the user cannot set it from the command line anymore.
Usually, plain style is the default, but can be set
differently. err_init () parses part of the command
line to check user settings.
extern char const * err_progname ()
Return current setting of progname. See err_set_progname ().
extern void err_set_progname (char const * )
Getting and setting the program name that is displayed
You are uncouraged to invoke err_set_progname before err_init ,
but then you must ensure that the string you pass is not
deallocated.
(If you invoke the function after err_init , you may do so
even with temporary strings.)
Invoking err_set_progname before init makes the library
parse another environment variable ("ERR_OPTIONS_"
concatenated with the program name in upper case) specific to
the application.
extern int err_pid ()
Return current setting of pid. See err_set_pid ().
If no PID is known, returns -1.
extern void err_set_pid (int pid )
Getting and setting the PID that is displayed.
Under Unix, the PID that is displayed defaults to the value
of getpid(). Under Windos, there is currently no PID
default. This can be overridden with this function.
Note that there is a command line option 'show-pid' that
decides whether the PID is displayed.
extern char const * err_config_prefix ()
Return current config prefix. See err_set_config_prefix ().
extern void err_set_config_prefix (char const * )
Getting and settings the prefix by which the error library is configured,
i.e., the prefix for the environment variables it reads from and the
command line options. By default, this is "err". It is converted
to upper case for the environment variables, thus "ERR" is the default
there. Further, if this is non-empty, a "-" is inserted
in the command line options and a "_" in the environment variables.
Therefore, the default environment variable is "ERR_OPTIONS" and the
default prefix for command line options is "--err-".
Setting this is NULL effectively resets the prefix to "msg".
Note
the default used to be "err" in older versions.
Using "msg" is recommended, since this refers to more than errors.
"err" is merely a historic misnomer.
The prefix must be set before an invocation to err_init (), otherwise,
it has no effect.
extern void err_unset_resolve_address ()
Unsets the current resolver set with err_set_resolve_address ()
extern void err_set_resolve_address (ErrAddressResolver )
Sets a user-provided callback for resolving addresses, i.e.,
to look up to which source code location an address corresponds.
If you have several address spaces, you should use the number, subsystem or
group mechanism to pass through information about memory space to this
function.
An alternative to this look-up mechanism is to provide a resolve function
for an overloaded extended address (err_ext_address_t ). This way, the
resolver is invoked depending on the type of extended address.
extern err_location_t const * err_resolve_address (int tag , int orig_tag , int number , err_location_t const * )
err-renumber
A function that resolves, if possible, an address to a
source code location.
In case anything changes, this function returns a pointer to a statically
allocated err_location_t . Otherwise, the original pointer is returned.
The user provided callback is only invoked if the file
is unset and the address is valid.
extern void err_set_next_location (err_location_t const * )
If this is invoked, the error location will be used in the
next eprintf command regardless of a possibly given location.
Note that only the last location set this way will have an
effect.
Further note that an eprintf with the C_TAG_PREFIX tag and
a given location also invokes this function if the next
location is not set. Therefore, calling this function is
equivalent to C_TAG_PREFIX with a location and an empty
format string when the next location is unset. However, use
this err_set_next_location () for clarity.
The function err_erase_prefix () deletes this location. If
you set a location whose file and address are invalid, this
is also equal to erasing the location.
extern void err_erase_prefix ()
extern void err_erase_suffix ()
Erases a buffered prefix (suffix) that has been printed with
C_TAG_PREFIX (C_TAG_SUFFIX).
extern void err_add_stream (int tags , FILE * stream , err_style_t const * = NULL )
If the stream already exists for the given file, the style will not
be changed. This is to allow the user to change the style explicitly
The streams stderr and stdout automatically get the names "stderr"
and "stdout".
Use err_stream_set_style for changing a stream style (remember to use
this AFTER err_stream_set_name since that function also likes to change
the error style if it has settings for that name, so it would again
reset the style.).
extern ERR_BOOL err_stream_set_name (FILE * stream , char const * name )
When you set this, command line options for styles are enabled for
the given stream. (E.g. print filtering (NYI), style settings)
Note
When a stream with this name exists and has a file pointer
of NULL or equal to the given file, then the current settings
will be copied from the named stream to the stream defined
by the file pointer. After that, the two streams will be
identified.
If a stream with the given name exists that has a different file
pointer, this routine returns false (= no success).
Note
when you erase a stream with a name, then the settings will be
erased, too, together with its name.
extern void err_stream_set_style (FILE * stream , err_style_t const * style )
Resets the current stream style.
extern void err_remove_stream (int tags , FILE * stream )
Add/remove an stream for error messages.
You can have only one style per FILE*. If you add a stream for
a FILE* that is already in use, the style is switched to the
new style before added the additional stream. Please note
the in this case, there are still two streams for this file,
although only one style. So if the filtering for both streams
is not mutually exclusive, some error messages are printed into
that stream twice per issue.
To change a style, first err_remove_stream () and then add it again.
Note that filtering rules are stored per file, so you cannot
reset a stream filter by removing the stream and adding it again.
If you want to reset a stream including its filtering rules, use
err_reset_stream ().
You can set a group of tags by using bit operators for simple
filtering: E.g.
C_TAG_WARN | C_TAG_ERROR
~C_TAG_DEBUG
For all tags, use C_TAG_ALL.
The values 0 and -1 for tags are illegal.
By default, there is one stream for the messages, stderr,
used for all messages.
A stream may be NULL in which case err_style_default will
be used.
The style must not be NULL!
extern void err_reset_stream (FILE * )
Resets a stream to its initial contents: it deletes all
filters, styles, its.
This also performs err_remove_stream (C_TAG_ALL, file).
extern void err_add_callback2_voidp (int tags , int priority , err_callback2_voidp_t , void * , err_style_t const * )
extern void err_add_callback2_int (int tags , int priority , err_callback2_int_t , int , err_style_t const * )
extern void err_add_callback2 (int tags , int priority , err_callback2_t , err_style_t const * )
extern void err_add_callback0_voidp (int tags , int priority , err_callback0_voidp_t , void * , err_style_t const * )
extern void err_add_callback0_int (int tags , int priority , err_callback0_int_t , int , err_style_t const * )
extern void err_add_callback0 (int tags , int priority , err_callback0_t , err_style_t const * )
extern void err_add_callback2_info_voidp (int tags , int priority , err_callback2_info_voidp_t , void * , err_style_t const * )
extern void err_add_callback2_info_int (int tags , int priority , err_callback2_info_int_t , int , err_style_t const * )
extern void err_add_callback2_info (int tags , int priority , err_callback2_info_t , err_style_t const * )
extern void err_add_callback0_info_voidp (int tags , int priority , err_callback0_info_voidp_t , void * , err_style_t const * )
extern void err_add_callback0_info_int (int tags , int priority , err_callback0_info_int_t , int , err_style_t const * )
extern void err_add_callback0_info (int tags , int priority , err_callback0_info_t , err_style_t const * )
extern void err_remove_callback (int tags , int priority , void * function )
extern void err_remove_callback_function (int tags , int priority , err_function_ptr_t function )
extern void err_remove_callback_void (int tags , int priority , err_function_ptr_t function )
extern void err_remove_callback_voidp (int tags , int priority , err_function_ptr_t function , void * user_data )
extern void err_remove_callback_int (int tags , int priority , err_function_ptr_t function , int user_data )
extern void err_clear_callback (int tags , int priority )
A function to call back for every message after filtering and formatting.
Like for err_(add/remove)_stream, you can specify groups of tags.
The callbacks are invoked in the following order:
Before the call to the print function, all priorities > 0
are invoked in rising order of the priority (1, 2, 3....)
and for the same priority, callbacks added later are invoked
later.
After the call to the print function, all priorities < 0
are invoked in RISING ORDER OF THE PRIORITY (... -3, -2, -1)
and for the same priority, callbacks added later are invoked
earlier.
By default, there are the following call backs:
err_add_callback (C_TAG_FATAL, -1, { exit(1); }, NULL)
err_add_callback (C_TAG_ASSERTION, -1, { abort(); }, NULL)
So the program will immediately be terminated after an error message
is issued with C_TAG_FATAL or C_TAG_ASSERTION.
For err_add_callback , a priority of 0 is illegal.
For err_add_callback a callback may be NULL in which case nothing
is invoked. However, the error message is formatted with the
given style, so this may be used for a more complex call back
mechanism anyway (by providing your own style).
For err_remove_callback and err_clear_callback , if priority is 0,
the commands perform on all priorities.
err_remove_callback_void removes a callback by its function pointer
that does not receive any user data.
err_remove_callback_voidp removes a callback by its function pointer
and the user data.
err_remove_callback_int removes a callback by its function pointer
and the user data.
err_remove_callback removes a callback by its function pointer.
Note that on machines were code pointers have a different size that
data pointers, this currently does not work. We will have to implement
something else. This function is deprecated, please use the other
alternatives that receive a ErrFunctionPtr.
err_clear_callback () erases all callbacks for a given tag/priority.
(E.g. this can be used to remove the terminating exit(0) / abort()
invocations. However, this is sincerely deprecated!)
If the style is NULL, the pure text of the error message is passed
to the callback.
[For the behaviour of the old interface, use priority = 1.]
extern void err_exit_1 (int tag , int orig_tag , int number , err_location_t const * , char const * text )
This is a function suitable for ther err_add_callback * function family that
exits the program with exit(1).
extern void err_abort (int tag , int orig_tag , int number , err_location_t const * , char const * text )
This is a function suitable for ther err_add_callback * function family that
exits the program with abort().
extern int err_declare_subsystem (char const * name )
Note that this function does not need to be invoked. You may
directly use err_subsystem () instead.
Generates a new, unique identifier of a new sub-system with the
given name. The returned value can be combined with the C_TAG_...
constants to generate errors in this sub-system. E.g.:
int lisp_subsystem= err_declare_subsystem ("Lisp");
...
eprintf (C_TAG_ERR | lisp_subsystem, 172, "Some error\n");
This is equivalent to:
eprintf (C_TAG_ERR | err_subsystem ("Lisp"), 172, "Some error\n");
Sub-systems are used for two purposes:
identification of an error message (the name of the
sub-system will be printed with the error message)
redirection of error messages.
b) was mainly introduced to keep old libraries compatible by
allowing them to set a default callback that prints all their
error messages into a vector. (liblisp and libtf14net work
like this).
To handle the errors with the normal method, use
err_unset_subsystem_callback () to switch off redirection.
You may specify NULL for name, if the subsystem has no name.
You can still use the returned number for the following
functions.
A predefined subsystem is 0, the core subsystem. You can also
use 0 for settings callbacks without need of declaration.
extern int err_subsystem (char const * name )
Return the identifier of a given subsystem
extern void err_set_subsystem_callback2_voidp (int subsystem , err_callback2_voidp_t , err_style_t const * , void * )
extern void err_set_subsystem_callback2_int (int subsystem , err_callback2_int_t , err_style_t const * , int )
extern void err_set_subsystem_callback2 (int subsystem , err_callback2_t , err_style_t const * )
extern void err_set_subsystem_callback0_voidp (int subsystem , err_callback0_voidp_t , err_style_t const * , void * )
extern void err_set_subsystem_callback0_int (int subsystem , err_callback0_int_t , err_style_t const * , int )
extern void err_set_subsystem_callback0 (int subsystem , err_callback0_t , err_style_t const * )
For C++, these functions are also accessible via
err_set_subsystem_callback
extern void err_unset_subsystem_callback (int subsystem )
This implements a mechanism of filtering sub-systems completely.
A callback for a subsystem overrides all other callback and stream
settings.
As usual, you can set callback to NULL in order to do the formatting,
but not invoke anything.
IF the style is NULL, no formatting will be done. Instead, the
raw message text string is passed to the callback.
extern char const * err_subsystem_name (int tag )
gets the group name or return NULL
#if defined(ERR_SUBSYSTEM_ID)
static int _err_subsystem_cache ()
#if defined(ERR_SUBSYSTEM_ID)
static int _err_subsystem_cache ()
extern int err_group (char const * name )
Returns the identifier of a given group. You need not declare groups,
but may freely use them directly. Groups are a bit like subsystems,
but in contrast, the group is not shown, but instead meant to be
an additional level of classification of messages. They are used
mainly for filtering.
extern char const * err_group_name (int tag )
gets the group name or return NULL
extern void err_group_set_prefix (int tag , char const * prefix )
Sets a string to print as a prefix in front of all errors
printed with the given err_group () in tag.
E.g., you might want to do:
err_group_set_prefix (err_group ("nyi"), "Not yet implemented:\n");
Then you can:
eprintf (C_TAG_ERROR|err_group ("nyi"), "Syntax error before ...");
To print:
"Not yet implemented:\nSyntax error before ..."
The prefix is added in front of texts added with ERR_PREFIX.
You can set a default prefix for all messages without a group
by setting tag=0.
You can reset a prefix by setting it to NULL.
extern char const * err_group_get_prefix (int tag )
Returns a prefix set with err_group_set_prefix .
extern void err_buffer_begin (err_buffer_t * buffer )
Start buffering all message into given buffer.
This locally makes error message issuing quiet.
Usage may be nested: this pushes an error buffer
which is then the innermost buffer.
If buffer is NULL, messages are hidden.
When buffering is active, only the innermost buffer
is filled with messages. The messages are already
filtered, but not formatted (apart from the mere
message).
Note that the buffer combines messages that have the
C_TAG_MORE with previous messages for convenience. This
is reflected in the typedef of err_message_t in
include/error/decls.h .
Note
Messages with the following tags cannot be gathered in buffers:
C_TAG_ASSERTION
C_TAG_FATAL
extern void err_buffer_end ()
End the buffering set with err_buffer_begin ()
extern ERR_BOOL err_is_buffered (int tag , int number )
err-renumber
whether something is buffered.
extern void err_re_issue (err_message_t * )
With this function, you can manually re-issue messages from
an error buffer.
extern void err_buffer_re_issue (err_buffer_t * buffer )
Seldom used: issues the messages but keeps them.
Introduced for debugging and otherwise not useful.
Don't use!
extern void err_buffer_flush (err_buffer_t * buffer )
Re-issue buffered error messages that where gathered
using err_begin_buffer and err_end_buffer.
Note that this function does not filter the messages,
because filtering is done before already.
After re-issuing the mesages, the buffer is cleared.
Note that an err_buffer_t is not an Erwin vector.
Still, many functions are identical to Erwin vectors,
so you can easily filter it before unbuffering using e.g.
err_buffur_erase_if etc. You don't need to take care
of freeing messages, because this is done by Erwin.
extern char const * err_decision_to_char_p (err_decision_t )
Return the a human readable symbol name of the given enum value.
extern void err_show_message (int number , err_decision_t show )
err-renumber
Selection of messages to show/hide.
show == ERR_YES show
show == ERR_NO hide
show == ERR_WEAK_YES show if not set otherwise yet
show == ERR_WEAK_NO hide if not set otherwise yet
show == ERR_DEFAULT use setting for tag (deletes previous setting)
Usually an application should stick to the ERR_DEFAULT_(YES,NO)
values, since this library will soon parse the command line
and configure itself at the users will.
The default is to use the setting for the given group.
If you set this, this overrides settings for the group.
Note
Messages with the following tags cannot be filtered,
since they have no numbers:
C_TAG_NONE
C_TAG_UNCLASSIFIED
C_TAG_ASSERTION
extern void err_show_devel (int tags , err_decision_t show )
extern void err_show (int tags , err_decision_t show )
Select filtering a certain group of tags or certain tags
of subsystems or the like. Use the ERR_YES,NO, etc. macros
as with err_show_message ().
You can specify groups of tags, 0 means all tags.
You can combine tags and subsystem and group ids to form a narrow
selection of what is to be filtered. E.g.,
err_show (C_TAG_WARNING | err_subsystem ("lex"), ERR_NO)
hides warnings from subsystem lex.
More specific selections override less specific ones.
The default is to hide debug messages (C_TAG_DEBUG) if NDEBUG is #defined
and to show all others. If NDEBUG is not #defined, all messages are
displayed by default. (Of course, this behaviour can be overriden using
this function, since that is only the default. It is even a weaker
default than can be defined with this function, so you can change it
with ERR_DEFAULT_YES and ERR_DEFAULT_NO.)
Note than currently, the library has only one table far the settings,
so the following sequence:
err_show (C_TAG_WARNING, ERR_YES);
err_show (C_TAG_WARNING, ERR_DEFAULT_NO);
err_show (C_TAG_WARNING, ERR_DEFAULT);
will let the library show warnings, since the second call has no
effect, since the value was already set.
No setting can be defined for C_TAG_MORE. The
setting of the previous message is used.
extern ERR_ERWIN_BOOL err_is_shown (int tag , int number )
err-renumber
Returns 1 if the message would be issued and 0 if not
extern void err_print_message (FILE * stream , int number , err_decision_t print )
err-renumber
Define that the given error number shall be printed. See err_print ()
for more details on the difference between printing and showing and
the filtering thereof.
extern void err_print_devel (FILE * file , int tags , err_decision_t print )
extern void err_print (FILE * file , int tags , err_decision_t print )
Like err_show *, but local to a file.
You can set-up filtering rules without actually currently using
that FILE*. The next time you err_add_stream (), the filtering
will be active.
With this function, you can set-up filtering on streams, e.g.,
have all messages of group 'logfile' go into a special file only.
You can use NULL as a file pointer to set a default behaviour
for all possible files. This default behaviour can be reset
using err_reset_stream (NULL).
extern void err_print_once_message (FILE * , int number , err_decision_t print , err_symtab_t * table = NULL )
err-renumber
Defines that the given message be printed only once. See err_print_once ()
for more details of the one-time issuing
extern void err_print_once_devel (FILE * , int tags , err_decision_t print , err_symtab_t * table = NULL )
extern void err_print_once (FILE * , int tags , err_decision_t print , err_symtab_t * table = NULL )
Any message returning YES using the given filtering will only be
printed once into the given stream.
To accomplish this, the text of every message is stored in
a hash table.
If 'table' is NULL, an internal global table is used. Otherwise,
the given symbol table is used for remembering messages. If
you want to, you can give a different table to the system.
Note
The library never deallocates tables that you give it.
To set a default behaviour for all possible files, use NULL as
a file pointer.
The only way to remove the filtering per stream is by using
err_reset_stream ().
You can reset the default values by using err_reset_stream (NULL).
extern ERR_ERWIN_BOOL err_is_printed (FILE * , int tag , int number )
err-renumber
checks the stream filtering for the given file.
Note
even if the FILE* is currently not in use, it's filtering
rules are still active.
If you want to reset a stream including its filtering rules, use
err_reset_stream ().
Further Note
even if a FILE* was never seen by the library, it
does have filtering rules. So even without ever using err_add_stream ()
on a new FILE*, this function will return ERR_ERWIN_TRUE if
the message is issued and shown.
extern ERR_ERWIN_BOOL err_is_seen (int tag , int number )
err-renumber
The functions consider all possible filters that prevent
messages from being printed in to a stream: issue filters,
show filters, and buffering. err_is_seen_in() also considers
stream filtering.
In short, this functions return whether the user will see
a message that is produced with an eprintf call in at least
one of the streams it is printed into.
extern void err_set_quiet_level_devel (int )
extern void err_set_quiet_level (int )
Set a typical show/hide behaviour suitable for many programs:
<=0 every tag is shown.
1 progress messages are hidden.
2 notes are also hidden.
3 infos are also hidden.
4 warnings are also hidden.
5 errors are also hidden.
>=6 fatal errors and assertion failures are also hidden.
This uses ERR_DEFAULT_YES and ERR_DEFAULT_NO to do the setting,
so it does not override older settings.
extern void err_stream_set_quiet_level_devel (FILE * , int )
extern void err_stream_set_quiet_level (FILE * , int )
like err_set_quiet_level () for streams. See err_print () for
details
extern void err_issue_message (int number , err_decision_t show )
err-renumber
Define whether a message is issued. This is a global filter
that filters by error number. See err_is_issued () and err_issue (),
also.
extern void err_issue_devel (int tags , err_decision_t show )
extern void err_issue (int tags , err_decision_t show )
An issued message is one that is counted. Those messages
whose issuing is prevented by a filter will not be seen by
error buffers and will not be distributed into streams and
user callbacks, and will also not be shown or printed.
So this a very hard filtering. The only counters that
are increased when a message is filtered from issuing are
the 'received' counters, which count the number of eprintf
invocations altogether.
See the ERR_STATUS_* enum for a list of filtering and
counting levels.
extern ERR_ERWIN_BOOL err_is_issued (int tag , int number )
err-renumber
The parameters are the same as for the show family, but
the effect is that the filtering is done such that the messages
are not even processed if they are filtered this way. In
contrast to only hiding them, this means:
Note
Messages with the following tags cannot be suppressed:
C_TAG_ASSERTION
C_TAG_FATAL
(But they can be hidden.)
extern int err_count (err_status_t , int tag = C_TAG_ERRORS )
Get the value of a tag counter.
A typical idiom at the end of main is:
exit (err_count (0,0) ? EXIT_FAILURE : EXIT_SUCCESS);
You can access different types of counters via this
function, depending on whether you specify the tag, the group
or the subsystem.
Furthermore, you may use groups of tags to get the total
count (the sum of all single counts). E.g.:
err_count (ERR_STATUS_DISTRIBUTED,
C_TAG_ERROR | C_TAG_WARNING | err_subsystem ("lex"))
It is (currently) illegal to specify both a subsystem and a group.
You cannot specify groups of statuses (this would make no sense).
If tag is 0, it defaults of C_TAG_ERRORS. If status is 0, it
defaults to ERR_STATUS_DISTRIBUTED, so the above is normally
what you want.
extern int err_message_count (err_status_t , int number )
err-renumber
Get the value of a message counter.
extern void err_clear_count (err_status_t , int number )
err-renumber
Set a particular counter to 0
extern void err_clear_message_count (err_status_t , int number )
err-renumber
Set a particular counter to 0
extern void err_set_count (err_status_t , int number , int val )
err-renumber
Set a particular counter to a given value
extern void err_add_count (err_status_t , int number , int val )
err-renumber
Add to a particular counter
extern void err_set_message_count (err_status_t , int number , int val )
err-renumber
extern void err_add_message_count (err_status_t , int number , int val )
err-renumber
For general modification of the counters.
You may use groups of tags and groups of statuses here.
None of these functions checks the fatal counters.
E.g.
err_count_dec (
ERR_STATUS_SHOWN | ERR_STATUS_PRINTED,
ERR_COUNTER_TYPE_TAG,
C_TAG_ERROR | C_TAG_WARNING);
Please note:
If you modify the tag counters manually, it may or
may not be guaranteed that e.g.
err_count (0, err_subsystem (X)) ==
err_count (0, C_TAG_ALL + err_subsystem (X))
since the library may or may not use own counters for the
sums per subsystem/group.
extern void err_clear_all_count (err_status_t )
This accepts groups of statuses.
E.g.
err_count_clear_all (ERR_STATUS_ALL);
extern void err_do_count (int tag , int number , err_status_t )
err-renumber
Counts this error in the internal counters.
This is usually not very interesting to the user, since this
the function the library uses internally to count. If the
user wants to contribute, they can use this.
This function does not generate a fatal error if any of the fatal
counters is exceeded by the counting. This checking is only done in
eprintf functions.
In contrast to err_add_count , you cannot count groups of tags with
this function. (The result of trying to do so will be strange.)
extern void err_set_fatal_count (err_status_t , int tag , int cnt )
This function let's you define a maximal amount of errors
that leads to a fatal error. This is useful if you are
expecting a large number of errors when you'd start fixing
at the beginning anyway.
This function sets the counter to a given tag.
extern void err_unset_fatal_count (err_status_t , int tag )
extern void err_unset_all_fatal_count (err_status_t )
Unset a fatal error counter. See err_set_fatal_count ().
extern void err_set_fatal_message_count (err_status_t , int number , int cnt )
err-renumber
Set err_set_fatal_counter().
This function sets the counter to a given message id.
extern void err_unset_fatal_message_count (err_status_t , int number )
err-renumber
Unset a fatal error counter. See err_set_fatal_message_count ().
extern void err_unset_all_fatal_message_count (err_status_t )
set/unset the amount of times a certain message may occur, that is
considered to be fatal. As with the normal message counters,
you may set/unset this for tags, groups, sub-systems, and messages.
cnt <= 0 is illegal.
As with counters, these functions work with groups of statuses, and
for ERR_COUNTER_TYPE_TAG, groups of tags.
Please note that these functions do not split the tag into tag,
subsystem and group. Instead, the fatal count may be specified
for any integer value. To check the fatal count, exactly this
value will be used to compare to the actual count. Therefore,
you can specify a fatal count for the sum of errors and
warnings, which in turn does not effect any fatal count for
errors and warnings alone. Or you could specify a fatal count
for C_TAG_ERROR of a given subsystem or group only.
This implies that you can only unset fatal counts exactly
for the tag you specified before. (So this behaves quite
differently from err_clear_count ().)
extern int err_fatal_count (err_status_t , int number )
err-renumber
Query a fatal counter.
extern int err_fatal_message_count (err_status_t , int number )
err-renumber
Get the amount of times a certain message may occur. You may
specify groups of status, in which case, the minimum count will
be returned.
-1 is returned if any of the matching error counts is unset.
extern ErrFormattedStream * err_get_stream (FILE * )
never returns NULL: if the stream does not exist, a new one is
allocated
extern ErrFormattedStream * err_get_stream_by_name (char const * )
may return NULL if no such stream is known.
extern void err_flush_buffers ()
For debugging purposes: dump all buffered error messages and clear
the message buffers.
extern void err_crash_aux ()
use err_crash() macro instead
extern void err_get_envvar_global (ErrVChar * result , char const * prefix )
Returns the name of the global environment variable for a
given prefix. E.g. for "msg", this returns "MSG_OPTIONS"
extern void err_get_envvar_local (ErrVChar * result , char const * prefix )
Returns the name of the local environment variable for a
given prefix. This requires err_prognam() to return non-NULL.
E.g. for a prefix of "msg" and an err_progname () of "exec2crl",
this returns "MSG_OPTIONS_EXEC2CRL".
If err_progname () returns NULL, this returns "".
extern void err_opt_parse_args (int * argc_p , char ** * argv_p , char const * prefix , ErrProcessOption callback )
Parses the command line searching for options for the given library
(defined by the prefix) and calls the callback for each option found.
The processed options are removed from the command line.
Any dashes around the given prefix will be removed before being used.
extern void err_opt_parse_string (char const * envstr , ErrProcessOption callback )
Parses an environment string for options and calls the callback for
each option found.
extern void err_opt_parse (int * argc_p , char ** * argv_p , char const * prefix , ErrProcessOption callback )
First parses the environment variables for the given prefix,
then parses the command line args. This combines err_opt_parse_args ()
and err_opt_parse_string () into one call.
The env.variables checked are derived from the prefix, which is
taken in upper case with _OPTIONS added, e.g. MSG_OPTIONS. This
is the first variable checked. The second variable, which may override
the settings, would be <PREFIX>OPTIONS <PROGNAME>, e.g.
MSG_OPTIONS_EXEC2CRL for a prefix of 'msg' and an err_progname () of
'exec2crl'.
See err_get_envvar_global () and err_get_envvar_local ().
#if defined(ERR_REDIR_STDERR)
extern int err_fprintf_tag ()
#if defined(ERR_REDIR_STDERR)
extern void err_fprintf_tag_set (int tag )
The tag to use for messages coming in via fprintf (stderr...)
By default, this is C_TAG_NOCLASS.
extern void err_add_callback (int tags , int priority , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback2_voidp_t , void * , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback2_int_t , int , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback2_t , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback0_voidp_t , void * , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback0_int_t , int , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback0_t , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback2_info_voidp_t , void * , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback2_info_int_t , int , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback2_info_t , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback0_info_voidp_t , void * , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback0_info_int_t , int , err_style_t const * )
extern void err_add_callback (int tags , int priority , err_callback0_info_t , err_style_t const * )
extern void err_remove_callback (int tags , int priority , err_callback2_voidp_t function )
extern void err_remove_callback (int tags , int priority , err_callback2_voidp_t function , void * data )
extern void err_remove_callback (int tags , int priority , err_callback0_voidp_t function )
extern void err_remove_callback (int tags , int priority , err_callback0_voidp_t function , void * data )
extern void err_remove_callback (int tags , int priority , err_callback2_info_voidp_t function )
extern void err_remove_callback (int tags , int priority , err_callback2_info_voidp_t function , void * data )
extern void err_remove_callback (int tags , int priority , err_callback0_info_voidp_t function )
extern void err_remove_callback (int tags , int priority , err_callback0_info_voidp_t function , void * data )
extern void err_remove_callback (int tags , int priority , err_callback2_int_t function )
extern void err_remove_callback (int tags , int priority , err_callback2_int_t function , int data )
extern void err_remove_callback (int tags , int priority , err_callback0_int_t function )
extern void err_remove_callback (int tags , int priority , err_callback0_int_t function , int data )
extern void err_remove_callback (int tags , int priority , err_callback2_info_int_t function )
extern void err_remove_callback (int tags , int priority , err_callback2_info_int_t function , int data )
extern void err_remove_callback (int tags , int priority , err_callback0_info_int_t function )
extern void err_remove_callback (int tags , int priority , err_callback0_info_int_t function , int data )
extern void err_remove_callback (int tags , int priority , err_callback2_t function )
extern void err_remove_callback (int tags , int priority , err_callback0_t function )
extern void err_remove_callback (int tags , int priority , err_callback2_info_t function )
extern void err_remove_callback (int tags , int priority , err_callback0_info_t function )
extern void err_set_subsystem_callback (int subsystem , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback2_voidp_t , void * , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback2_int_t , int , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback2_t , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback0_voidp_t , void * , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback0_int_t , int , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback0_t , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback2_info_voidp_t , void * , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback2_info_int_t , int , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback2_info_t , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback0_info_voidp_t , void * , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback0_info_int_t , int , err_style_t const * )
extern void err_set_subsystem_callback (int subsystem , err_callback0_info_t , err_style_t const * )
extern void err_style_none_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
extern err_v_char_t * err_style_none_post_format (err_formatted_stream_t * , int , int , err_v_char_t const * )
extern void err_style_simple_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
extern err_v_char_t * err_style_simple_post_format (err_formatted_stream_t * , int , int , err_v_char_t const * )
extern void err_style_default_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
extern err_v_char_t * err_style_default_post_format (err_formatted_stream_t * , int , int , err_v_char_t const * )
extern void err_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int part , int tag )
extern void err_open_markup (err_markup_t * , err_v_char_t * , int , int )
extern void err_end_part (err_markup_t * , err_v_char_t * )
extern char const * err_markup_none_color (err_markup_t * , int , int , ERR_ERWIN_BOOL )
extern void err_markup_none_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int , int )
extern err_style_t const * err_style_from_int (int )
gets a style from a ERR_STYLE_DEFAULT constant
extern int err_style_from_string_to_int (char const * )
extern err_style_t const * err_style_from_string (char const * )
extern int err_position_pieces (err_position_t const * )
Returns the number of valid pieces of the error position. In detail:
returns 0 if file is == NULL
otherwise
returns 1 if line is <= 0
otherwise
returns 2 if pos is <= 0
otherwise
returns 3.
extern char const * err_tag_string (int tag )
Returns a string that describes a given color tag. E.g. "Error" for
C_TAG_ERROR.
It returns NULL, if no tag is to be written
extern char const * err_tag_description (ERR_BOOL * initial_vowel , int tag , ERR_BOOL plural )
Returns a description of a tag, e.g. "assertion" for C_TAG_ASSERTION.
It can also return the plural form.
This never returns NULL.
extern err_symbol_t err_tag_abbreviation (int tag )
Returns a symbol of a tag, e.g. "assertion" for C_TAG_ASSERTION.
In contrast to err_tag_description , these are not for humans but
for computers: a simple one word tag name. No spaces, to bells or
whistles.
This never returns NULL.
C interface for the super class: currently only _init:
extern void err_normal_address_destruct (err_ext_address_t * )
virtual functions and class of the standard implementation:
extern void err_normal_address_format_preposition (err_v_char_t * , err_preposition_t )
extern err_location_t * err_in_file (char const * )
The following return a reference to a static variable, so you
cannot invoke these twice in the same expression.
When using C++, use ErrPosition (...) instead, this does
not have this problem.
extern err_location_t * err_in_line (char const * , int )
extern err_location_t * err_at_position (char const * , int , int )
These define an error position
Info
this function returns a pointer to a static variable!
extern void err_location_delete (err_location_t * )
These adds the end of the error area
extern err_location_t * err_originally_at_position (err_location_t * , char const * , int , int )
These adds the original position of the error which can also be modified
by the upto functions.
extern void err_set_in_file (err_position_t * , char const * )
extern void err_set_in_line (err_position_t * , char const * , int )
extern void err_set_at_position (err_position_t * , char const * , int , int )
for modification of a position (e.g. during resolving of addresses)
extern int fxprintf (FILE * , char const * format , ... )
*xprintf family: extended printf implemented with Erwin's VectorChar::format.
By using Erwin for printing:
%Lx is supported
%s prints NULL safely
etc.
And they are NULL-safe: if either the file, string or the format is NULL, the
functions simply return 0.
extern int vfxprintf (FILE * , char const * format , va_list )
Varargs version of fxprintf
extern int foxprintf (FILE * , int , char const * format , ... )
Like fxprintf with Erwin format options.
extern int vfoxprintf (FILE * , int , char const * format , va_list )
Varargs version of fxprintf with Erwin format options
#if defined(ERR_HAVE_STDERR)
extern int xprintf (char const * format , ... )
like fxprintf with stream == stdout
#if defined(ERR_HAVE_STDERR)
extern int vxprintf (char const * format , va_list )
like vfxprintf with stream == stdout
#if defined(ERR_HAVE_STDERR)
extern int oxprintf (int , char const * format , ... )
like foxprintf with stream == stdout
#if defined(ERR_HAVE_STDERR)
extern int voxprintf (int , char const * format , va_list )
like vfoxprintf with stream == stdout
extern int snxprintf (char * , int , char const * format , ... )
Like snprintf, but implemented with Erwin and buffer overflow safe.
Well, better use Erwin directly than this family of functions. They
are here for convenience only. However, they work. :-)
Also, sprintf should never be used (-> buffer overflow), so its equivalent
is not implemented here.
extern int vsnxprintf (char * , int , char const * format , va_list )
Varargs version of snxprintf
extern int snoxprintf (char * , int , int , char const * format , ... )
Like snxprintf with Erwin format options.
extern int vsnoxprintf (char * , int , int , char const * format , va_list )
Varargs version of snxprintf with Erwin format options.
extern int voleprintf (int tag , int number , int options , err_location_t const * , char const * , va_list )
err-renumber
Many variants if eprintf () and deprintf():
The name is a concatenation of (in that very order):
a) The argument passing type:
""
by ...
eprintf (tag, num, format, ...)
"v"
by va_list e.g.
veprintf (tag, num, format, va)
b) The option argument to Erwin format:
""
options are 0:
eprintf (tag, num, format, ...)
"q"
options are ERR_FO_QUOTE_C_STRING:
qeprintf (tag, num, format, ...)
vqeprintf (tag, num, format, va)
"o"
options are passed before the format string:
oeprintf (tag, num, options, format, ...)
voeprintf (tag, num, options, format, va)
c) The location argument:
""
no location:
eprintf (tag, num, format, ...)
"fl"
file and line are given:
fleprintf (tag, num, file, line, format, ...)
vofleprintf (tag, num, file, line, options, format, va)
"flp"
file, line and position (=column) are given:
flpeprintf (tag, num, file, line, pos, format, ...)
voflpeprintf (tag, num, file, line, pos, options, format, va)
"p"
an err_location_t const * argument is passed. This pointer
may always be a local reference even if the message is buffered.
The library copies the contents if needed.
leprintf (tag, num, loc, format, ...)
voleprintf (tag, num, loc, options, format, va)
d) The debugging indicator:
""
not a debugging version
eprintf (tag, num, format, ...)
"d"
debugging version
deprintf (tag, num, format, ...)
This marks the message as a developer message by
adding C_TAG_DEBUG to the tag. Further, with
either -DNDEBUG or -DRELEASE, these functions will
not produce any message at all (it fact, the calls
will not even produce any code, so you can safely
use these without fearing that shipped code contains
debug code for generating the arguments).
The tag is a single bit C_TAG_xyz constant (see error/tags.h). You may
add a subsystem and/or group classification to it by using err_group ()
and err_subsystem :
eprintf (C_TAG_ERROR | err_subsystem ("lexer"), 0, "blahblah");
If num == 0, the number it is not printed.
You can use the errcodes script to insert the numbers automatically and
to check them into CVS.
Note
the error message will automatically be ensured to end in
\n. You, therefore, cannot issue one message using several
eprintf () calls. This is vital for the internal handling of
error messages anyway: one call = one message. However,
multi-line messages with additional lines that give additional
information can be implemented with the special error tag
C_TAG_MORE.
Options are Erwin vector options (e.g. ERR_FO_QUOTE_C_STRING etc.)
(The Erwin library of this error library has the prefix err_/ERR_/Err.)
The functions print the progname, PID, possible color tag, and a prefix
depending on the kind of message.
If tag == C_TAG_MORE and num == 0, the previous number is used. The same
holds for the tag in this case, which is replaced by the previous tag for
formatting. However, C_TAG_MORE may have a different number to allow
separate filtering etc.
The q-functions use the ERR_FO_QUOTE_C_STRING as options for printing (this is a
convenience abbreviation).
The fl types print a file and a line number in front of the message.
The flp types print a file, a line number and a line position.
The a types print an address or, if they can look up that address, the corresponding
file, a line number and possibly a line position.
Note that because of the compatibility with the fprintf family, these
routines return the number of characters that were printed, althought
this is really quite uninteresting information most of the time.
To be precise, the functions return the number of characters printed
without the automatic prefix (file, line, etc.), but the amount of
characters that resulted from formatting the user format string with
its arguments:
fleprintf (C_TAG_ERROR, 0, "hello.c", 24, "abc");
returns 3 (the length of "abc")
The de-variants (instead of e-variants) are for development and are not
compiled in when NDEBUG is defined. Messages issued using the de-family
never change the message counters, because counting would change in the
development version. Further, bodies of messages printed with de-variants
are colored using the C_TAG_DEBUG color.
Note that the de-family does not return a value. (This is due to some
compilers that do not support macro varargs.)
C_TAG_FATAL should be used with de-printf, since the call-back that
exits the program will not be invoked with NDEBUG.
Note
the tag C_TAG_DEBUG is a different message classification:
deprintf is thought to be for all kinds of messages that are
interesting to the developer, but not to users. E.g. a message
might indicate that some strange situation was encountered so that
an algorithm is not used, while in the production line of the
program, the algorithm is silently not used. C_TAG_DEBUG is more meant
to be for larger loads of messages that issue state information
about the algorithm during debugging, while deprintf is for messages
that are issued when unexpected things happend while you think that
an algorithm works.
extern int eprintf (int tag , int number , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int fleprintf (int tag , int number , char const * file , int line , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int flpeprintf (int tag , int number , char const * file , int line , int pos , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int leprintf (int tag , int number , err_location_t const * , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int oeprintf (int tag , int number , int options , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int ofleprintf (int tag , int number , int options , char const * file , int line , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int oflpeprintf (int tag , int number , int options , char const * file , int line , int pos , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int oleprintf (int tag , int number , int options , err_location_t const * , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int qeprintf (int tag , int number , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int qfleprintf (int tag , int number , char const * file , int line , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int qflpeprintf (int tag , int number , char const * file , int line , int pos , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int qleprintf (int tag , int number , err_location_t const * , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern int veprintf (int tag , int number , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vfleprintf (int tag , int number , char const * file , int line , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vflpeprintf (int tag , int number , char const * file , int line , int pos , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vleprintf (int tag , int number , err_location_t const * , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int voeprintf (int tag , int number , int options , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vofleprintf (int tag , int number , int options , char const * file , int line , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int voflpeprintf (int tag , int number , int options , char const * file , int line , int pos , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vqeprintf (int tag , int number , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vqfleprintf (int tag , int number , char const * file , int line , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vqflpeprintf (int tag , int number , char const * file , int line , int pos , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern int vqleprintf (int tag , int number , err_location_t const * , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void eprintf_devel (int tag , int number , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void fleprintf_devel (int tag , int number , char const * file , int line , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void flpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void leprintf_devel (int tag , int number , err_location_t const * , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void oeprintf_devel (int tag , int number , int options , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void ofleprintf_devel (int tag , int number , int options , char const * file , int line , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void oflpeprintf_devel (int tag , int number , int options , char const * file , int line , int pos , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void oleprintf_devel (int tag , int number , int options , err_location_t const * , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void qeprintf_devel (int tag , int number , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void qfleprintf_devel (int tag , int number , char const * file , int line , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void qflpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void qleprintf_devel (int tag , int number , err_location_t const * , char const * , ... )
err-renumber
See voleprintf for more documentation.
extern void veprintf_devel (int tag , int number , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vfleprintf_devel (int tag , int number , char const * file , int line , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vflpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vleprintf_devel (int tag , int number , err_location_t const * , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void voeprintf_devel (int tag , int number , int options , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vofleprintf_devel (int tag , int number , int options , char const * file , int line , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void voflpeprintf_devel (int tag , int number , int options , char const * file , int line , int pos , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void voleprintf_devel (int tag , int number , int options , err_location_t const * , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vqeprintf_devel (int tag , int number , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vqfleprintf_devel (int tag , int number , char const * file , int line , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vqflpeprintf_devel (int tag , int number , char const * file , int line , int pos , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern void vqleprintf_devel (int tag , int number , err_location_t const * , char const * , va_list )
err-renumber
See voleprintf for more documentation.
extern char const * err_markup_plain_color (err_markup_t * , int , int , ERR_BOOL )
extern void err_markup_plain_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int , int )
extern int err_style_plain_format_progname (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , char const * progname , char const * hostname , int pid )
This prints the first part of the error message in plain format, i.e.,
"progname[host.pid]: "
extern int err_style_plain_format_tag (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , int number )
This prints the tag and the number in plain format.
extern int err_style_plain_format_address_range (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
Print an address (range).
Prints an address:
"At address ...: "
extern int err_style_plain_format_time (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , time_t time )
Print an address (range).
Prints the time:
"[12:53:60]"
extern void err_style_plain_append_cr_perhaps (err_v_char_t * , ERR_BOOL loc_valid , int * nentries , char const * text )
extern err_v_char_t * err_style_plain_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
This is the post-format function for plain style.
extern void err_style_plain_format (err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
This is the format function for plain style.
extern void err_style_plain_format_marked_up (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
This is the format function for plain style.
extern int err_style_plain_format_area (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
The following are functions that are used by err_style_plain_format () any
which might be useful for the user in order to compose their own styles.
This prints the first part of the error message in plain format, i.e.,
"file:line:pos: "
or
"file:line:pos:..line:pos: "
or the like.
Currently only prints the first part, since Emacs cannot mark ranges.
extern void err_style_colon_format_marked_up (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
This is the format function for plain style.
extern void err_style_colon_format (err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
This is the format function for colon style.
extern int err_style_colon_format_flp (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , ERR_ERWIN_BOOL hide_file , ERR_ERWIN_BOOL hide_line , char const * file , int line , int pos )
extern int err_style_colon_format_position (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , ERR_ERWIN_BOOL hide_file , ERR_ERWIN_BOOL hide_line , err_position_t const * loc )
extern int err_style_colon_format_area (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
The following are functions that are used by err_style_colon_format () any
which might be useful for the user in order to compose their own styles.
This prints the first part of the error message in colon format, i.e.,
"file:line:pos: "
or
"file:line:pos--line:pos: "
or the like.
extern int err_style_colon_format_address_range (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_location_t const * )
The following functions are currently identical to the err_style_plain versions
simply invokes err_style_plain_post_format (but this may change in the future)
extern int err_style_colon_format_progname (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , char const * progname , char const * hostname , int pid )
simply invokes err_style_plain_post_format (but this may change in the future)
extern int err_style_colon_format_tag (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , int number )
simply invokes err_style_plain_post_format (but this may change in the future)
extern err_v_char_t * err_style_colon_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
simply invokes err_style_plain_post_format (but this may change in the future)
extern void err_style_quotes_append_shell_quoted (err_v_char_t * , char const * )
This puts the string into double quotes and does the quotation
just like a (possibly interactive) shell would expect it. The
interactive shell is special wrt. to the character !.
Note
althought the string is in double quotes, it is NOT C-string
quoted!
Examples
Literal Shell (C-String)
abs.txt "abs.txt" "abs.txt" (trivial)
A"B "A\"B" "A\"B" (shell = C)
C:\A.TEST "C:\A.TEST" "C:\\A.TEST" (shell != C)
A'B "A"'!'"B" "A'B" (shell != C)
extern void err_style_quotes_format_marked_up (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
This is the format function for plain style.
extern void err_style_quotes_format (err_formatted_stream_t * , err_v_char_t * target , int tag , int orig_tag , int orig_number , err_msg_info_t , err_location_t const * location , char const * progname , char const * hostname , int pid , char const * text )
This is the format function for quotes style.
extern int err_style_quotes_format_area (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_area_t const * )
The following are functions that are used by err_style_quotes_format () any
which might be useful for the user in order to compose their own styles.
This prints the first part of the error message in quotes format, i.e.,
"FILE", line LINE(pos)
or
"FILE", line LINE(pos..pos)
or
"FILE", lines LINE(pos)..LINE(pos)
or the like.
Currently only prints the first part, since Emacs cannot mark ranges.
extern int err_style_quotes_format_address_range (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , err_location_t const * )
The following functions are currently identical to the err_style_plain versions
simply invokes err_style_plain_post_format (but this may change in the future)
extern int err_style_quotes_format_progname (err_markup_t * markup , err_formatted_stream_t * stream , err_v_char_t * , int tag , int orig_tag , char const * progname , char const * hostname , int pid )
simply invokes err_style_plain_post_format (but this may change in the future)
extern int err_style_quotes_format_tag (err_markup_t * markup , err_formatted_stream_t * , err_v_char_t * , int tag , int orig_tag , int number )
simply invokes err_style_plain_post_format (but this may change in the future)
extern err_v_char_t * err_style_quotes_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
simply invokes err_style_plain_post_format (but this may change in the future)
extern char const * err_tag_qt (int tag )
one of:
"", unclassified, banner, prompt
"<n>" notes, infos, progress,
"<w>" warning
"<e>" assertion, error, fatal,
"<d>" debug
extern void err_style_qt_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
extern err_v_char_t * err_style_qt_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
This is the post-format function for plain style.
extern char const * err_markup_qt3_color (err_markup_t * , int , int , ERR_BOOL )
extern void err_markup_qt3_begin_part (err_markup_t * , err_formatted_stream_t * , err_v_char_t * , int , int )
extern void err_style_qt3_format (err_formatted_stream_t * , err_v_char_t * , int , int , int , err_msg_info_t , err_location_t const * , char const * , char const * , int , char const * )
extern err_v_char_t * err_style_qt3_post_format (err_formatted_stream_t * , int tag , int orig_tag , err_v_char_t const * )
This is the post-format function for plain style.