Hi,
I created a patch to SourceForge.net to fix this issue but I think I need some help.
Originally I thought this was an trivial issue to fix but, well, it ended up to being something very different.
Here's the original patch:
Index: main.cpp
===================================================================
RCS file: /cvsroot/codeblocks/codeblocks/src/src/main.cpp,v
retrieving revision 1.108
diff -u -r1.108 main.cpp
--- main.cpp 21 Oct 2005 09:58:05 -0000 1.108
+++ main.cpp 27 Oct 2005 11:14:56 -0000
@@ -1297,7 +1297,8 @@
void MainFrame::OnFileReopen(wxCommandEvent& event)
{
wxString fname = m_FilesHistory.GetHistoryFile(event.GetId() - wxID_FILE1);
- Open(fname, true);
+ if (!Open(fname, true))
+ m_FilesHistory.RemoveFileFromHistory(event.GetId() - wxID_FILE1); // Remove files that cannot be found
}
void MainFrame::OnFileOpenRecentClearHistory(wxCommandEvent& event)
Nothing special there, but when I tried to make a better patch with some user interaction:
if (!Open(fname, true)) {
if (wxMessageBox(_("There was an error opening the file. Remove it from the list?"), _("Confirm"), wxYES_NO | wxICON_QUESTION) == wxYES)
m_FilesHistory.RemoveFileFromHistory(event.GetId() - wxID_FILE1); // Remove files that cannot be found
}
In the original patch Code::Blocks creates a error saying that the file could not be opened but in the "better patch" it doesn't, why? Does Code::Blocks even check that the file exist or was the error in the original patch created by an extension?
Just tested it: disabling the Default MIME handler plugin and then trying to open a dead entry from the list does nothing. I guess it makes sense, in a way, but I think Code::Blocks should check if the file exists.
The second issue is with the "Start here" page because it also shows the recent files. Should I try to write a patch that removes the recent file that was just deleted from the menu (don't know if it's even possible).