X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ferror.c;h=7a7e997d9c397717cafc8f3110cf9665d59cb548;hb=9b4b94c6d3b5fd98bf396e23d015380b87d2d296;hp=65a7b0f10a2bf3c035068387c4138c153e936c77;hpb=74a57f26f1458b28a0fddbb9f46004ac8f4d9c30;p=pspp diff --git a/src/error.c b/src/error.c index 65a7b0f10a..7a7e997d9c 100644 --- a/src/error.c +++ b/src/error.c @@ -18,7 +18,6 @@ 02111-1307, USA. */ #include -#include #include "error.h" #include #include @@ -32,6 +31,7 @@ #include "settings.h" #include "str.h" #include "var.h" +#include "version.h" int err_error_count; int err_warning_count; @@ -512,3 +512,54 @@ dump_message (char *msg, unsigned indent, void (*func) (const char *), local_free (buf); } + + +void +request_bug_report_and_abort(const char *msg ) +{ + fprintf(stderr, + "******************************************************************\n" + "You have discovered a bug in PSPP.\n\n" + " Please report this, by sending " + "an email to " PACKAGE_BUGREPORT ",\n" + "explaining what you were doing when this happened, and including\n" + "a sample of your input file which caused it.\n"); + + fprintf(stderr, + "Also, please copy the following lines into your bug report:\n\n" + "bare_version: %s\n" + "version: %s\n" + "stat_version: %s\n" + "host_system: %s\n" + "build_system: %s\n" + "default_config_path: %s\n" + "include_path: %s\n" + "groff_font_path: %s\n" + "locale_dir: %s\n", + + bare_version, + version, + stat_version, + host_system, + build_system, + default_config_path, + include_path, + groff_font_path, + locale_dir); + + if ( msg ) + fprintf(stderr,"Diagnosis: %s\n",msg); + + fprintf(stderr, + "******************************************************************\n"); + + abort(); +} + +void +err_assert_fail(const char *expr, const char *file, int line) +{ + char msg[256]; + snprintf(msg,256,"Assertion failed: %s:%d; (%s)",file,line,expr); + request_bug_report_and_abort( msg ); +}