PublicInbox::Admin::check_require('-index');
require PublicInbox::MIME;
require PublicInbox::InboxWritable;
+require PublicInbox::Import;
my $usage = "$0 -m MESSAGE_ID [--all] [INBOX_DIRS]";
my $opt = { verbose => 1, all => 0, -min_inbox_version => 2, raw => 0 };
my $tmpl = 'public-inbox-edit-XXXXXX';
foreach my $to_edit (values %$found) {
- my ($edit_fh, $edit_fn) = tempfile($tmpl, TMPDIR => 1);
+ my ($edit_fh, $edit_fn) = tempfile($tmpl, TMPDIR => 1, UNLINK => 1);
$edit_fh->autoflush(1);
my ($ibx, $smsg) = @{$to_edit->[0]};
my $old_raw = $ibx->msg_by_smsg($smsg);
# run the editor, respecting spaces/quote
retry_edit:
- if (system(qw(sh -c), qq(eval "$editor" '"\$@"'), '--', $edit_fn)) {
+ if (system(qw(sh -c), $editor.' "$@"', $editor, $edit_fn)) {
if (!(-t STDIN) && !$opt->{force}) {
die "E: $editor failed: $?\n";
}
my $new_mime = PublicInbox::MIME->new(\$new_raw);
my $old_mime = PublicInbox::MIME->new($old_raw);
+ # make sure we don't compare unwanted headers, since mutt adds
+ # Content-Length, Status, and Lines headers:
+ PublicInbox::Import::drop_unwanted_headers($new_mime);
+ PublicInbox::Import::drop_unwanted_headers($old_mime);
+
# allow changing Received: and maybe other headers which can
# contain sensitive info.
my $nhdr = $new_mime->header_obj;
next unless $opt->{verbose};
# should we consider this machine-parseable?
- print "$ibx->{mainrepo}:\n\tNONE\n";
+ PublicInbox::AdminEdit::show_rewrites(\*STDOUT, $ibx, []);
next;
}
}
next unless $opt->{verbose};
# should we consider this machine-parseable?
- print "$ibx->{mainrepo}:";
- if (scalar @$commits) {
- print join("\n\t", '', @$commits), "\n";
- } else {
- print "\tNONE\n";
- }
+ PublicInbox::AdminEdit::show_rewrites(\*STDOUT, $ibx, $commits);
}
}