[PATCH 1/2] Add separate "Append to file" button
Wolfgang Denk <[email protected]> Wed, 13 Jun 2012 00:02:48 +0200
| Newsgroups | gmane.mail.exmh.devel |
|---|---|
| Message-ID | <[email protected]> |
There are many cases where I would like to overwrite an existing file, but the "Save to file" funtion always appends only. So create a new "Append to file" button for this functionality, and make "Save to file" just perform a plain write, overwriting any existing data. Signed-off-by: Wolfgang Denk <[email protected]> --- lib/app-defaults | 4 +++- lib/msg.tcl | 23 ++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/app-defaults b/lib/app-defaults index 8aa01de..44bfb71 100644 --- a/lib/app-defaults +++ b/lib/app-defaults @@ -401,7 +401,7 @@ exmh.iconic: 0 *Mops.spam.m.c_f_no: Bogo_FilterFolder ham *Mops.more.text: More... -*Mops.more.m.entrylist: print unmark clip xunseen burst distrib save use edit uudecode postscript apply1 apply2 munseen pgp uriscan uriopen partial ref post grabaddr attach +*Mops.more.m.entrylist: print unmark clip xunseen burst distrib save append use edit uudecode postscript apply1 apply2 munseen pgp uriscan uriopen partial ref post grabaddr attach *Mops.more.m.uentrylist: *Mops.more.m.l_print: Print @@ -418,6 +418,8 @@ exmh.iconic: 0 *Mops.more.m.c_distrib: Msg_Dist Mh_DistSetup *Mops.more.m.l_save: Save to file *Mops.more.m.c_save: Msg_Save +*Mops.more.m.l_append: Append to file +*Mops.more.m.c_append: Msg_Append *Mops.more.m.l_use: Use message as draft ! ! The \$ is required because menu commands are eval'ed when the menu diff --git a/lib/msg.tcl b/lib/msg.tcl index e9c58bf..79f1a2e 100644 --- a/lib/msg.tcl +++ b/lib/msg.tcl @@ -550,13 +550,34 @@ proc Msg_BurstDigest {} { } } } + proc Msg_Save {} { global exmh mhProfile set files {} Ftoc_MsgIterate msgid { lappend files $mhProfile(path)/$exmh(folder)/$msgid } - + + set name [FSBox "Select file to create/save to:" ] + if {$name != {}} { + if [catch {eval {exec cat} $files {> $name}} err] { + Exmh_Status $err error + } else { + set plural [expr {([llength $files] > 1) ? "s" : ""}] + Exmh_Status "Message$plural stored in $name" + } + } else { + Exmh_Status "canceled" + } +} + +proc Msg_Append {} { + global exmh mhProfile + set files {} + Ftoc_MsgIterate msgid { + lappend files $mhProfile(path)/$exmh(folder)/$msgid + } + set name [FSBox "Select file to create/append to:" "" write] if {$name != {}} { set exists [file exists $name] -- 1.7.10.2