From: Kazutoshi S. <k_s...@f2...> - 2008-06-19 23:31:37
|
Hi Matthieu, >>Comment By: Matthieu Casanova (kpouer) (snip) > Hi, I am late but what was the reason of this patch ? Sorry, there was a discussion in some private mails sent only to Joseph and Marcelo. I attached the summary of it at the bottom of this mail. I wasn't sure that it should be on the list at that time. But I'm now absolutely sure it should be. > It introduce a regression since the UndoManager must not depend on jEdit > class. > Can it be rollbacked ? I see the problem. But I don't want rollbacking it for reasons said in the mailing. I'll make a patch to solve it, do some test, and commit. Could you please wait for a while? It will one or a few days. The mailing started at 2007/03/01: Kazutoshi Satoda wrote: > va...@us... wrote: >> Revision: 9037 >> http://svn.sourceforge.net/jedit/?rev=9037&view=rev >> Author: vanza >> Date: 2007-02-27 21:18:25 -0800 (Tue, 27 Feb 2007) >> >> Log Message: >> ----------- >> SF Patch #1666690: No Undo past file save option > (snip) >> Modified: jEdit/trunk/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java >> =================================================================== >> --- jEdit/trunk/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java 2007-02-27 14:22:46 UTC (rev 9036) >> +++ jEdit/trunk/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java 2007-02-28 05:18:25 UTC (rev 9037) > (snip) >> @@ -137,6 +137,9 @@ >> finally >> { >> buffer.readUnlock(); >> + if(jEdit.getBooleanProperty("resetUndoOnSave")){ >> + buffer.getUndoManager().clear(); >> + } >> } >> } >> finally > (snip) > > This code invokes buffer.getUndoManager().clear() even if the save request > failed (with something like a low level I/O error, an encoding error, ...). > User will get nothing but loses undo. Is this intended? > > Should I use devel-list or commits-list for questions like this? Joseph Erickson wrote: > Completely unintended. It makes sense now that you say it though. > > Where in the code is a successful save certain? Right after > write(buffer,out); in the try block? Is it later on when the markers > file is cleaned up? When vfs.saveComplete is called? There's a lot of > try-catch-finallys in there and it's hard for me to tell where things > are happening. > > Let me know and I'll submit another patch. Kazutoshi Satoda wrote: > I propose to place it in Buffer.finishSaving(), next to > undoMgr.bufferSaved() in it. Or, placing in UndoManager.bufferSaved() > may be more correct. In latter case, you should take care of that > UndoManager.bufferSaved() is also called from Buffer.setDirty(). > In both way, new method getUndoManager() will be no longer needed. Joseph Erickson wrote: > Thank you for your help. I refactored bufferSaved() to handle this and > moved the dirty flag handling code into a new method. > > http://sourceforge.net/tracker/index.php?func=detail&aid=1672086&group_id=588&atid=300588 -- k_satoda |