summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2014-03-28 12:54:09 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2014-03-28 12:54:09 +0800
commit2cb41e7dbd315d5c8fa5b3878058955100007135 (patch)
tree34213bbdbcb33d22c3bade4479a2c7403aab197b
parentecaeb6148636d5641ad32e4908629764dd013db7 (diff)
downloadpttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.tar
pttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.tar.gz
pttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.tar.bz2
pttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.tar.lz
pttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.tar.xz
pttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.tar.zst
pttbbs-2cb41e7dbd315d5c8fa5b3878058955100007135.zip
Try harder to prevent file lost.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5978 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/mbbsd/edit.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/pttbbs/mbbsd/edit.c b/pttbbs/mbbsd/edit.c
index 2d91fd28..e4ccecce 100644
--- a/pttbbs/mbbsd/edit.c
+++ b/pttbbs/mbbsd/edit.c
@@ -1379,18 +1379,30 @@ auto_backup(void)
void
restore_backup(void)
{
- char bakfile[80], buf[80];
+ char bakfile[80], buf[80], ans[3];
setuserfile(bakfile, fp_bak);
- if (dashf(bakfile)) {
+ while (dashf(bakfile)) {
vs_hdr("編輯器自動復原");
+ mvouts(3, 0, "== 以下為未完成的文章部份內容 ==\n");
+ show_file(bakfile, 4, 15, SHOWFILE_ALLOW_NONE);
getdata(1, 0, "您有一篇文章尚未完成,(S)寫入暫存檔 (Q)算了?[S] ",
buf, 4, LCECHO);
- if (buf[0] != 'q') {
- setuserfile(buf, ask_tmpbuf(3));
- Rename(bakfile, buf);
- } else
- unlink(bakfile);
+ if (*buf == 'q') {
+ unlink(bakfile);
+ break;
+ }
+ setuserfile(buf, ask_tmpbuf(2));
+ if (dashs(buf) > 0) {
+ vs_hdr("暫存檔已有內容");
+ mvouts(2, 0, "== 以下為暫存檔部份內容 ==\n");
+ show_file(bakfile, 3, 18, SHOWFILE_ALLOW_NONE);
+ getdata(1, 0, "選定暫存檔已有下列內容,確定要覆蓋\掉它? [y/N] ",
+ ans, sizeof(ans), LCECHO);
+ if (*ans != 'y')
+ continue;
+ }
+ Rename(bakfile, buf);
}
}