ruby-changes:45785
From: naruse <ko1@a...>
Date: Sun, 12 Mar 2017 02:07:58 +0900 (JST)
Subject: [ruby-changes:45785] naruse:r57858 (ruby_2_4): merge revision(s) 57317, 57318:
naruse 2017-03-12 02:07:53 +0900 (Sun, 12 Mar 2017) New Revision: 57858 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57858 Log: merge revision(s) 57317,57318: error.c: moved * error.c (preface_dump, postscript_dump): moved from rb_vm_bugreport to place the last important message at the very last after [NOTE]. error.c: moved * error.c (preface_dump, postscript_dump): CrashReporter directory was used before Mac OS X 10.6. Modified directories: branches/ruby_2_4/ Modified files: branches/ruby_2_4/error.c branches/ruby_2_4/test/ruby/test_rubyoptions.rb branches/ruby_2_4/version.h branches/ruby_2_4/vm_dump.c Index: ruby_2_4/test/ruby/test_rubyoptions.rb =================================================================== --- ruby_2_4/test/ruby/test_rubyoptions.rb (revision 57857) +++ ruby_2_4/test/ruby/test_rubyoptions.rb (revision 57858) @@ -587,6 +587,11 @@ class TestRubyOptions < Test::Unit::Test https://github.com/ruby/ruby/blob/trunk/ruby_2_4/test/ruby/test_rubyoptions.rb#L587 (?:.*\n)? For\sdetails:\shttp:\/\/.*\.ruby-lang\.org/.*\n \n + (?: + \[IMPORTANT\]\n + (?:.+\n)+ + \n + )? )x, ] ExpectedStderrList << additional if additional Index: ruby_2_4/version.h =================================================================== --- ruby_2_4/version.h (revision 57857) +++ ruby_2_4/version.h (revision 57858) @@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_4/version.h#L1 #define RUBY_VERSION "2.4.0" #define RUBY_RELEASE_DATE "2017-03-12" -#define RUBY_PATCHLEVEL 23 +#define RUBY_PATCHLEVEL 24 #define RUBY_RELEASE_YEAR 2017 #define RUBY_RELEASE_MONTH 3 Index: ruby_2_4/vm_dump.c =================================================================== --- ruby_2_4/vm_dump.c (revision 57857) +++ ruby_2_4/vm_dump.c (revision 57858) @@ -922,72 +922,6 @@ rb_dump_machine_register(const ucontext_ https://github.com/ruby/ruby/blob/trunk/ruby_2_4/vm_dump.c#L922 # define rb_dump_machine_register(ctx) ((void)0) #endif /* HAVE_PRINT_MACHINE_REGISTERS */ -FUNC_MINIMIZED(static void bug_important_message(FILE *out, const char *const msg, size_t len)); - -static void -bug_important_message(FILE *out, const char *const msg, size_t len) -{ - const char *const endmsg = msg + len; - const char *p = msg; - - if (!len) return; - if (isatty(fileno(out))) { - static const char red[] = "\033[;31;1;7m"; - static const char green[] = "\033[;32;7m"; - static const char reset[] = "\033[m"; - const char *e = strchr(p, '\n'); - const int w = (int)(e - p); - do { - int i = (int)(e - p); - fputs(*p == ' ' ? green : red, out); - fwrite(p, 1, e - p, out); - for (; i < w; ++i) fputc(' ', out); - fputs(reset, out); - fputc('\n', out); - } while ((p = e + 1) < endmsg && (e = strchr(p, '\n')) != 0 && e > p + 1); - } - fwrite(p, 1, endmsg - p, out); -} - -static void -preface_dump(void) -{ -#if defined __APPLE__ - static const char msg[] = "" - "-- Crash Report log information " - "--------------------------------------------\n" - " See Crash Report log file under the one of following:\n" - " * ~/Library/Logs/CrashReporter\n" - " * /Library/Logs/CrashReporter\n" - " * ~/Library/Logs/DiagnosticReports\n" - " * /Library/Logs/DiagnosticReports\n" - " for more details.\n" - "Don't forget to include the above Crash Report log file in bug reports.\n" - "\n"; - const size_t msglen = sizeof(msg) - 1; -#else - const char *msg = NULL; - const size_t msglen = 0; -#endif - bug_important_message(stderr, msg, msglen); -} - -static void -postscript_dump(void) -{ -#if defined __APPLE__ - static const char msg[] = "" - "[IMPORTANT]\n" - "Don't forget to include the Crash Report log file in bug reports.\n" - "\n"; - const size_t msglen = sizeof(msg) - 1; -#else - const char *msg = NULL; - const size_t msglen = 0; -#endif - bug_important_message(stderr, msg, msglen); -} - void rb_vm_bugreport(const void *ctx) { @@ -1001,8 +935,6 @@ rb_vm_bugreport(const void *ctx) https://github.com/ruby/ruby/blob/trunk/ruby_2_4/vm_dump.c#L935 #endif const rb_vm_t *const vm = GET_VM(); - preface_dump(); - if (vm) { SDR(); rb_backtrace_print_as_bugreport(); @@ -1109,6 +1041,4 @@ rb_vm_bugreport(const void *ctx) https://github.com/ruby/ruby/blob/trunk/ruby_2_4/vm_dump.c#L1041 } #endif /* __FreeBSD__ */ } - - postscript_dump(); } Index: ruby_2_4/error.c =================================================================== --- ruby_2_4/error.c (revision 57857) +++ ruby_2_4/error.c (revision 57858) @@ -24,6 +24,10 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_4/error.c#L24 #include <unistd.h> #endif +#if defined __APPLE__ +# include <AvailabilityMacros.h> +#endif + #ifndef EXIT_SUCCESS #define EXIT_SUCCESS 0 #endif @@ -336,6 +340,80 @@ bug_report_file(const char *file, int li https://github.com/ruby/ruby/blob/trunk/ruby_2_4/error.c#L340 return NULL; } +FUNC_MINIMIZED(static void bug_important_message(FILE *out, const char *const msg, size_t len)); + +static void +bug_important_message(FILE *out, const char *const msg, size_t len) +{ + const char *const endmsg = msg + len; + const char *p = msg; + + if (!len) return; + if (isatty(fileno(out))) { + static const char red[] = "\033[;31;1;7m"; + static const char green[] = "\033[;32;7m"; + static const char reset[] = "\033[m"; + const char *e = strchr(p, '\n'); + const int w = (int)(e - p); + do { + int i = (int)(e - p); + fputs(*p == ' ' ? green : red, out); + fwrite(p, 1, e - p, out); + for (; i < w; ++i) fputc(' ', out); + fputs(reset, out); + fputc('\n', out); + } while ((p = e + 1) < endmsg && (e = strchr(p, '\n')) != 0 && e > p + 1); + } + fwrite(p, 1, endmsg - p, out); +} + +static void +preface_dump(FILE *out) +{ +#if defined __APPLE__ + static const char msg[] = "" + "-- Crash Report log information " + "--------------------------------------------\n" + " See Crash Report log file under the one of following:\n" +# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6 + " * ~/Library/Logs/CrashReporter\n" + " * /Library/Logs/CrashReporter\n" +# endif + " * ~/Library/Logs/DiagnosticReports\n" + " * /Library/Logs/DiagnosticReports\n" + " for more details.\n" + "Don't forget to include the above Crash Report log file in bug reports.\n" + "\n"; + const size_t msglen = sizeof(msg) - 1; +#else + const char *msg = NULL; + const size_t msglen = 0; +#endif + bug_important_message(out, msg, msglen); +} + +static void +postscript_dump(FILE *out) +{ +#if defined __APPLE__ + static const char msg[] = "" + "[IMPORTANT]" + /*" ------------------------------------------------"*/ + "\n""Don't forget to include the Crash Report log file under\n" +# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6 + "CrashReporter or " +# endif + "DiagnosticReports directory in bug reports.\n" + /*"------------------------------------------------------------\n"*/ + "\n"; + const size_t msglen = sizeof(msg) - 1; +#else + const char *msg = NULL; + const size_t msglen = 0; +#endif + bug_important_message(out, msg, msglen); +} + static void bug_report_begin_valist(FILE *out, const char *fmt, va_list args) { @@ -346,6 +424,7 @@ bug_report_begin_valist(FILE *out, const https://github.com/ruby/ruby/blob/trunk/ruby_2_4/error.c#L424 fputs(buf, out); snprintf(buf, sizeof(buf), "\n%s\n\n", ruby_description); fputs(buf, out); + preface_dump(out); } #define bug_report_begin(out, fmt) do { \ @@ -366,7 +445,8 @@ bug_report_end(FILE *out) https://github.com/ruby/ruby/blob/trunk/ruby_2_4/error.c#L445 (*reporter->func)(out, reporter->data); } } - fprintf(out, REPORTBUG_MSG); + fputs(REPORTBUG_MSG, out); + postscript_dump(out); } #define report_bug(file, line, fmt, ctx) do { \ @@ -487,6 +567,7 @@ rb_assert_failure(const char *file, int https://github.com/ruby/ruby/blob/trunk/ruby_2_4/error.c#L567 fprintf(out, "Assertion Failed: %s:%d:", file, line); if (name) fprintf(out, "%s:", name); fprintf(out, "%s\n%s\n\n", expr, ruby_description); + preface_dump(out); rb_vm_bugreport(NULL); bug_report_end(out); die(); Property changes on: ruby_2_4 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r57317-57318 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/