This is the mail archive of the cygwin-apps mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Tue, 8 Aug 2006, Igor Peshansky wrote: > On Sun, 6 Aug 2006, Brian Dessent wrote: > > [snip] > > http://cygwin.com/ml/cygwin-apps/2006-02/msg00099.html > > So, we have a couple of issues here. Firstly, the bug/unintended > > feature of -r causing the infinite retries until the file can be > > written (if I understand correctly.) Second the patch by Igor that > > adds a dialog when trying to replace an in-use file. > > Right. > > > Here is my opinion on the matter: I like the dialog idea, but I don't > > think having "Abort" as an option is appropriate, as it will > > potentially cause a really screwed up install, plus it was left > > unimplemented in the patch submitted. So let's just have two > > options: "Retry" and "Replace on Reboot". I know that this means we > > can't use the stock "Abort/Retry/Ignore" dialog but I think it's > > worth it for clarity. > > Agreed on all points. However, there is a technical issue here. Stock > MessageBoxes come in many flavors -- there actually is a Retry/Cancel box. > There is no Retry/Continue stock box, unfortunately. > > We can use the Retry/Cancel one, and perhaps play some games with the > WNDPROC of the MessageBox class to make "Cancel" look like "Replace on > reboot" (or "Continue", which I like better -- we can explain in the > MessageBox text that pressing "Continue" will require a reboot later), but > I'm not sure it'll work, and it'll be ugly. Plus, I don't know that much > about the WNDPROC, so it'll take me a bit of time to get something like > this working. > > OTOH, I can change my patch to use the Retry/Cancel box today, and add the > following to the text: "Pressing 'Cancel' will cause setup to use Windows > mechanisms for replacing in-use files. It will be necessary for you to > reboot after setup completes." I know, the label "Cancel" is evocative of > aborting the whole installation, but this functionality is so useful, IMO, > that I, for one, would put up with a little annoyance of a wrong label. > Changing the label in a way I've described above could be a later > enhancement. Well, lo and behold, I overreacted. It turned out to be much easier than I anticipated, so attached is the patch with the Retry/Continue message box. > > http://cygwin.com/ml/cygwin-apps/2006-01/msg00204.html > [snip] > However, there was another issue in that thread (the inline patch). It > seems that applying that will cause the code to be simpler, but I'm afraid > there's some little issue I'm missing. I still have that one in my private sandbox, and had it in my running copy of setup for a while with no observed problems. Any opinions? > > If we can finish off the "Retry/Replace" file-in-use thing and assuming > > there are no reports of new issues with this snapshot then I think we > > can push out a release. > > Sounds good. If people are fine with the Retry/Cancel box, I can have a > new patch by the end of this week. So my weeks end on Wednesdays... :-) Since this change involved indenting an 80-line chunk of code, I'm also attaching a whitespace-indifferent patch for ease of reviewing. ChangeLog is below. Igor ============================================================================== 2006-08-16 Igor Peshansky <pechtcha@cs.nyu.edu> * install.cc (Installer::installOne): If file is in use, ask the user to stop processes and retry. (MB_RETRYCONTINUE, IDCONTINUE): New macros. (hMsgBoxHook): New static field. (CBTProc): New window hook function. (_custom_MessageBox): New function. * CHANGES: Update with the above. -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu | igor@watson.ibm.com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte." "But no -- you are no fool; you call yourself a fool, there's proof enough in that!" -- Rostand, "Cyrano de Bergerac"
Attachment:
setup-retry-replace.patch
Description: patch to apply
Attachment:
setup-retry-replace.patch.-bB
Description: patch to review
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |