diff options
-rw-r--r-- | trans/ChangeLog | 5 | ||||
-rw-r--r-- | trans/crash.c | 23 |
2 files changed, 24 insertions, 4 deletions
diff --git a/trans/ChangeLog b/trans/ChangeLog index fa061239..47f4bd94 100644 --- a/trans/ChangeLog +++ b/trans/ChangeLog @@ -1,3 +1,8 @@ +2006-11-27 Ben Asselstine <benasselstine@canada.com> + Thomas Schwinge <tschwinge@gnu.org> + + * crash.c (trivfs_append_args): Handle CRASH_ORPHANS_HOW. + 2006-11-27 Thomas Schwinge <tschwinge@gnu.org> * crash.c: Correct the usage of the argp documentation string. diff --git a/trans/crash.c b/trans/crash.c index 493554a7..bd57497b 100644 --- a/trans/crash.c +++ b/trans/crash.c @@ -505,18 +505,33 @@ error_t trivfs_append_args (struct trivfs_control *fsys, char **argz, size_t *argz_len) { + error_t err; const char *opt; switch (crash_how) { - case crash_suspend: opt = "--suspend"; break; - case crash_kill: opt = "--kill"; break; - case crash_corefile:opt = "--core-file"; break; + case crash_suspend: opt = "--action=suspend"; break; + case crash_kill: opt = "--action=kill"; break; + case crash_corefile: opt = "--action=core-file"; break; default: return EGRATUITOUS; } + err = argz_add (argz, argz_len, opt); - return argz_add (argz, argz_len, opt); + if (!err) + { + switch (crash_orphans_how) + { + case crash_suspend: opt = "--orphan-action=suspend"; break; + case crash_kill: opt = "--orphan-action=kill"; break; + case crash_corefile: opt = "--orphan-action=core-file"; break; + default: + return EGRATUITOUS; + } + err = argz_add (argz, argz_len, opt); + } + + return err; } struct argp crash_argp = { options, parse_opt, 0, doc }; |