summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-07 02:34:33 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-07 02:34:33 +0000
commit7aab062ef3772c7e8e50fc872a1647918c76dbba (patch)
tree3bfaf1207aef12c325d9dd7a21ae9fe9a7788c06
parent1491c4189a67a1a2ca0347e243190375dd4e002c (diff)
version.c: no exit in ruby_show_copyright
* include/ruby/backward.h (ruby_show_copyright_to_die): for source code backward compatibility. * ruby.c (process_options): return Qtrue to exit the process successfully. * version.c (ruby_show_copyright): no longer exit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--NEWS4
-rw-r--r--include/ruby/backward.h20
-rw-r--r--include/ruby/ruby.h4
-rw-r--r--ruby.c1
-rw-r--r--version.c6
6 files changed, 41 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 5942d0c02a..bfaf2ac69d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Thu Jan 7 11:34:14 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/backward.h (ruby_show_copyright_to_die): for source
+ code backward compatibility.
+
+ * ruby.c (process_options): return Qtrue to exit the process
+ successfully.
+
+ * version.c (ruby_show_copyright): no longer exit.
+
Wed Jan 6 17:22:53 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/optparse.rb (OptionParser#order!): add `into` optional
diff --git a/NEWS b/NEWS
index 7384eb7931..d84c275087 100644
--- a/NEWS
+++ b/NEWS
@@ -30,6 +30,10 @@ with all sufficient information, see the ChangeLog file or Redmine
=== C API updates
+* ruby_show_version() will no longer exits the process, if
+ RUBY_SHOW_COPYRIGHT_TO_DIE is set to 0. This will be the default in
+ the future.
+
=== Supported platform changes
=== Implementation improvements
diff --git a/include/ruby/backward.h b/include/ruby/backward.h
new file mode 100644
index 0000000000..4574cb98da
--- /dev/null
+++ b/include/ruby/backward.h
@@ -0,0 +1,20 @@
+#ifndef RUBY_RUBY_BACKWARD_H
+#define RUBY_RUBY_BACKWARD_H 1
+
+#ifndef RUBY_SHOW_COPYRIGHT_TO_DIE
+# define RUBY_SHOW_COPYRIGHT_TO_DIE 1
+#endif
+#if RUBY_SHOW_COPYRIGHT_TO_DIE
+/* for source code backward compatibility */
+DEPRECATED(static inline int ruby_show_copyright_to_die(int));
+static inline int
+ruby_show_copyright_to_die(int exitcode)
+{
+ ruby_show_copyright();
+ return exitcode;
+}
+#define ruby_show_copyright() /* defer EXIT_SUCCESS */ \
+ (exit(ruby_show_copyright_to_die(EXIT_SUCCESS)))
+#endif
+
+#endif /* RUBY_RUBY_BACKWARD_H */
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 14fe7c3e16..7aabf5bd68 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -2206,6 +2206,10 @@ void ruby_sig_finalize(void);
/*! @} */
+#if !defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY
+# include "ruby/backward.h"
+#endif
+
RUBY_SYMBOL_EXPORT_END
#if defined(__cplusplus)
diff --git a/ruby.c b/ruby.c
index 0a39bfba97..dfbf714f37 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1414,6 +1414,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
}
if (opt->dump & DUMP_BIT(copyright)) {
ruby_show_copyright();
+ return Qtrue;
}
if (!opt->e_script) {
diff --git a/version.c b/version.c
index 6caf91226a..4c7b1abb40 100644
--- a/version.c
+++ b/version.c
@@ -96,12 +96,10 @@ ruby_show_version(void)
fflush(stdout);
}
-/*! Prints the copyright notice of the CRuby interpreter to stdout and \em exits
- * this process successfully.
- */
+/*! Prints the copyright notice of the CRuby interpreter to stdout. */
void
ruby_show_copyright(void)
{
PRINT(copyright);
- exit(EXIT_SUCCESS);
+ fflush(stdout);
}