Unfortunately the undelete utility was able to find everything, including files I had deleted years ago, except any of the .c, .cbTemp, or .backup files I was looking for.
If it helps, here is some more information on the situation:
I was using a Nightly build from a month or two ago (SVN 4154 Jun 22, 07). After putting some finishing touches on what was to be my next release of the program, I proceeded to rebuild the project (at this time CodeBlocks had been running for some time, nearly 8-10 hours). It began giving me strange errors about undefined references in my object files, which I knew were clearly defined and had not changed any code that would make them undefined. I tried rebuilding again, and after the same errors appeared, I tried looking at the other .c and .h files to see if something had gone wrong there. As I had thought, nothing had changed to produce the error (since I was only working on the one c file at a time), and quite stumped, I went to switch tabs back to the first file again. This is when it locked up and promptly crashed. At first, I was not alarmed as CB has crashed on me before, and had saved my work (via the rebuild) before it crashed anyways, so I simply re-opened it. I was a little disturbed to see an empty file, but sometimes the file tabs don't load correctly in C::B so I just found the file under the "Sources" folder in the project tree-list and double-clicked it. The full realization of what had happened (and with it the feeling of total nausea, the one you might get after realizing you left your wallet and everything in it at a bar the night before), occurred after, when repeatedly opening the file, each time it came up empty.
Hmm yes, if this happens (I don't see a reason why it should, but you never know... during a crash anything can happen) then obviously your data will be overwritten. But I see no way to prevent this, we have no way of telling.
Well, if there is, say, code that refreshes the editor between switching file tabs, then perhaps if it fails to refresh properly, any pending file writing should be cancelled. Still I'm not sure why CB would decide to save after switching file tabs, unless it was responding to the crash by attempting to save all data before being terminated. In which case, if the unstable state of the program has caused the contents of the editor to be cleared, then it might have ended up doing more harm then good. If this is what is occuring, (although it is a long-shot assumption on my part) then one way of prevention would be that, in the event that CB does try to save data before crashing, the editor (or some internal monitoring mechanism) should flag an exception when ever it has had its contents changed adversely (i.e. if it failed to refresh), which would then suspend any pending file writing until the exception has been dealt with.
But as I said, this is all just a guess as to what did happen, though I think an "overwriting" flaw in the method of file writing is more probable than the above scenario. Did you guys have a look at the .RPT file, any much info from that?