Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Bug with read-only (write protected) files
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

jeoffh
Junior Member

12 Posts

Posted - Feb 28 2007 :  08:33:06 AM  Show Profile  Reply with Quote
I have a bug to report about read-only files. This one has bothered me a bit for some time and I have just been to lazy to report it - I am using build 1544 in VS 2005 but the bug has been there for a few years in every version I have ever used. Steps to reproduce:
1) Open a project (mine is VC++ .sln file, not sure if that matters)
2) Close all files on the IDE workspace (not necessary, just eliminate confusion)
2) Open a read-only C source or header file in the IDE
3) Open a read/write (normal) C source or header file in the IDE
4) Close the IDE (the VS program) or the solution
5) Open the solution again
6) Activate (switch to) the read/write file, highlite a few rows and hit the comment slash (/). You can also just hit "CTRL-SPACE" and then choose something from the VA drop list and it will lead to the bug in step 7 (below). If you just hit a letter on the keyboard then you will edit the file like normal, its just the VA-editing things that fail as per below.
7) You should see the "Edit of Read-Only File" dialog, but this is wrong because you are on the read/write file. Even worse, if you don't realize what happened an you choose "Make Writable" then any changes will be occurring on the read-only file (switch over and see the mess you have made)

This one's a pretty nasty bug. I have managed to write-over my built-in MFC/ATL header (.h) files a few times before I realized it was a bug in Visual Assist.

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 28 2007 :  11:26:07 AM  Show Profile  Reply with Quote
using VS2005 and VA 1548 I have just tried this, and I am not seeing any problems. Can you check and see if you have:

Show Miscellaneous files in Solution Explorer" setting in Tools|Options|Environment|Documents

turned on? There is a current bug we are trying to fix where characters are sent to the wrong file, but only if this setting is turned on. I am wondering if you are encountering the same bug.

zen is the art of being at one with the two'ness
Go to Top of Page

jeoffh
Junior Member

12 Posts

Posted - Feb 28 2007 :  11:29:50 AM  Show Profile  Reply with Quote
Yes, I am quite addicted to that "Show Miscellaneous files..." feature.

My apologies for reporting a known bug. I tried searching for "read-only" and "protected" in the forums before posting but didn't find anything relevant... Good luck with the bug squashing, and could you please let me know if/when it is fixed?

Thank you, and thanks for the response.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Feb 28 2007 :  12:00:26 PM  Show Profile  Reply with Quote
We believe this is actually due to a bug in the IDE.

Since you have a reproducible testcase, could you please try something out?

Please add these two macros to your macro list:

Function GetOutputWindowPane(ByVal Name As String, Optional ByVal show As Boolean = True) As OutputWindowPane
Dim window As Window
Dim outputWindow As OutputWindow
Dim outputWindowPane As OutputWindowPane

window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
If show Then window.Visible = True
outputWindow = window.Object
Try
outputWindowPane = outputWindow.OutputWindowPanes.Item(Name)
Catch e As System.Exception
outputWindowPane = outputWindow.OutputWindowPanes.Add(Name)
End Try
outputWindowPane.Activate()
Return outputWindowPane
End Function

Sub GetActiveDocumentName()
Dim doc As Document = DTE.ActiveDocument
Dim docname As String = doc.Name
Dim outputWindowPane As OutputWindowPane
outputWindowPane = GetOutputWindowPane("Output")
outputWindowPane.OutputString("activeDoc: " + docname + vbLf)
End Sub


Close the solution.
Disable VA.
Run the GetActiveDocumentName macro after you open your solution.

Normally, the macro just writes the file name of the active window to the output pane.
But in some cases, the macro causes the active window to change - the IDE notices that the activeDocument is not actually active and then switches it to become active. (But it has already given out bad information to VA by that time.)

Does running the macro cause the active window to change in your testcase?
Go to Top of Page

jeoffh
Junior Member

12 Posts

Posted - Feb 28 2007 :  12:13:54 PM  Show Profile  Reply with Quote
Yes, with VA off the IDE does mysteriously switch the active window. The curious part (IMHO) is that I did this experiment twice with the "protected.c" file in different tab positions (the first/leftmost and also as the second/rightmost tab) and both times VisualStudio switched to "protected.c", be it tab index 0 or 1. I would have expected the problem to only manifest if the left/first tab was the protected and my workspace was saved with the unprotected file on the right and activated.

I also wanted to mention that I am running VS 2005 with SP1 (the bug was there before I used SP1, I think it was even present when I was using VS 2003 for that matter).

I hope this information helps you in your efforts. Are there any further tests that you would like for me to conduct?
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Feb 28 2007 :  12:20:52 PM  Show Profile  Reply with Quote
Thanks.

Was that with the "Show miscellaneous files" option on or off?
If it was enabled, could you please retry with the option disabled?
Go to Top of Page

jeoffh
Junior Member

12 Posts

Posted - Feb 28 2007 :  12:33:10 PM  Show Profile  Reply with Quote
VA OFF + Miscellaneous Files ON = switches
VA ON + Miscellaneous Files ON = switches
VA ON + Miscellaneous Files OFF = no switch
VA Off + Miscellaneous Files OFF = no switch

Also, I am turning VA OFF before I exit VS (and thus saving my workspace) but when I load VS 2005 I see that VA has turned itself back on (this is before I load my project, it stays ON after I have loaded my project too, with or without the "miscellaneou files" enabled).
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Feb 28 2007 :  12:49:23 PM  Show Profile  Reply with Quote
Thanks for the testing.

We had attempted a workaround in 1547; it fixed our testcase but caused more problems 'out in the wild' so had to be backed out (hence 1548). case=4903

I'm contemplating putting in a command to update the VA document state if we can't get this fixed for the next build. Not sure that the workaround is worth the effort since it can't happen automatically - it would require someone in your position to notice the odd behavior and then invoke the command to fix it...
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Mar 01 2007 :  08:12:35 AM  Show Profile  Reply with Quote
As an aside, see this FAQ about stopping VA loading: http://docs.wholetomato.com?W306

zen is the art of being at one with the two'ness
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000