summaryrefslogtreecommitdiff
path: root/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'process.c')
-rw-r--r--process.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/process.c b/process.c
index 0877a7d01f..8024588b69 100644
--- a/process.c
+++ b/process.c
@@ -900,6 +900,27 @@ pst_bitand(VALUE st1, VALUE st2)
if (mask < 0) {
rb_raise(rb_eArgError, "negative mask value: %d", mask);
}
+#define WARN_SUGGEST(suggest) \
+ rb_warn_deprecated_to_remove_at(3.5, "Process::Status#&", suggest)
+
+ switch (mask) {
+ case 0x80:
+ WARN_SUGGEST("Process::Status#coredump?");
+ break;
+ case 0x7f:
+ WARN_SUGGEST("Process::Status#signaled? or Process::Status#termsig");
+ break;
+ case 0xff:
+ WARN_SUGGEST("Process::Status#exited?, Process::Status#stopped? or Process::Status#coredump?");
+ break;
+ case 0xff00:
+ WARN_SUGGEST("Process::Status#exitstatus or Process::Status#stopsig");
+ break;
+ default:
+ WARN_SUGGEST("other Process::Status predicates");
+ break;
+ }
+#undef WARN_SUGGEST
status &= mask;
return INT2NUM(status);
@@ -934,6 +955,21 @@ pst_rshift(VALUE st1, VALUE st2)
if (places < 0) {
rb_raise(rb_eArgError, "negative shift value: %d", places);
}
+#define WARN_SUGGEST(suggest) \
+ rb_warn_deprecated_to_remove_at(3.5, "Process::Status#>>", suggest)
+
+ switch (places) {
+ case 7:
+ WARN_SUGGEST("Process::Status#coredump?");
+ break;
+ case 8:
+ WARN_SUGGEST("Process::Status#exitstatus or Process::Status#stopsig");
+ break;
+ default:
+ WARN_SUGGEST("other Process::Status attributes");
+ break;
+ }
+#undef WARN_SUGGEST
status >>= places;
return INT2NUM(status);