X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-edit;h=6884fd0cb276623f64f4e27b7cb5e965c4140256;hb=b41c19abcf0b0ac8a5f55678bfb0058ad50b3179;hp=ff0351a389cca4243a28a64971ba3b8533438da4;hpb=45890d532f0ea68f5879b036b22d9dbd4e19754c;p=public-inbox.git diff --git a/script/public-inbox-edit b/script/public-inbox-edit index ff0351a3..6884fd0c 100755 --- a/script/public-inbox-edit +++ b/script/public-inbox-edit @@ -14,6 +14,7 @@ use PublicInbox::MID qw(mid_clean mids); 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 }; @@ -120,7 +121,7 @@ $mids 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); @@ -137,7 +138,7 @@ foreach my $to_edit (values %$found) { # 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"; } @@ -197,6 +198,11 @@ W: possible message boundary splitting error 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; @@ -207,7 +213,7 @@ W: possible message boundary splitting error next unless $opt->{verbose}; # should we consider this machine-parseable? - print "$ibx->{mainrepo}:\n\tNONE\n"; + PublicInbox::AdminEdit::show_rewrites(\*STDOUT, $ibx, []); next; } @@ -223,11 +229,6 @@ W: possible message boundary splitting error } 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); } }