I don't know what to do about CheckForModifiedFiles since it works for me on both Windows XP and Ubuntu 8.04
The only thing I can do is revert to the previous version which neither uses CB editor or ThreadSearch.
I don't know how it can work for you on linux, but on windows you are right. I just found the problem and it's might be not so difficult to solve.
Have you checked it only for codesnippets, or also for normal editor ?
When I compiled codesnippets-plugin on my w2k kvm-box it warns me about redeclaration of "ID_NBEditorManager", "ID_EditorManager" , "idEditorManagerCheckFiles" and "ID_EditorManagerCloseButton" without "dllimport" and that the compiler ignores the previous declaration.
That means the four id's from C::B's "editormanager.h" and the redeclared id's from "seditormanager.h" are in the same scope.
On linux the "DLLIMPORT"-macro is empty and so the redeclaration uses the same physical memory (that's what extern is for if used without initialization).
In "seditormanager.cpp" you have the following lines:
int ID_NBEditorManager = wxNewId();
int ID_EditorManager = wxNewId();
int idEditorManagerCheckFiles = wxNewId();
This code changes the values of the id's and therefore breaks the event-binding that were made by the main-app before.
If you rename the id's to e.g. "ID_NBSEditorManager", etc. (folllowing your naming-scheme for the source- and headerfiles) the "CheckForModifiedFiles"-event in C::B works as before.
I don't know if codesnippets-plugin will still work as expected or if you only need the editormanager-functions for the standalone-version.
But you know your code and how it works.
I hope there would be a possibility to overwork it, without removing the new functionallity.
I can fix the "release" crash If I can get it to happen.
I don't know how it can work for you
It might be because of a type mismatch, because I use 64bit linux and if there are e.g. "long"s and "int"s mixed, it might crash as it happens with wxSmith (changed in svn some revisions ago).
4.X series has much better warning reports than the 3.4.x.
Just be willing to fix them ;-)
mingw32-g++.exe -Lbase\tinyxml -LC:\Usr\Proj\wxWidgets287\lib\gcc_dll -Lbase\tinyxml -Lc:\usr\mingw431\bin\lib -LC:\Usr\mingw431\bin\lib\gcc\mingw32\4.3.1 -o build_tools\autorevision\autorevision.exe .objs\build_tools\autorevision\autorevision.o -s -ltxml c:\usr\mingw431\bin\lib c:\usr\mingw431\bin\lib\gcc\mingw32\4.3.1
ld: crt2.o: No such file: No such file or directory
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
I've tried for 3 hrs to get past this problem: crt2.o can't be found.
The soluctions I've found on Google don't work, and the one on this board is unclear, and the dev says not to use it.
So I guess I'm backed into a corner. Without gcc 3.4.5 I have no usable CodeBlocks.
This version of gcc 4.3.1 came from the TDM site. Is there another I should try?
I don't know if the crash happens in the same piece of code in Windows.
Perhaps I try it ou tomorrow.
Yes, the crash does happen on XP with gcc345 also. This seems to happen to me when I use a wxEVT_IDLE routine. Usually, I have to disable the plugin first, then restart CB, then the uninstall runs ok.
I've never found the root of the problem.
Program received signal SIGSEGV, Segmentation fault.
0x101b17fb in wxAppBase::SendIdleEvents ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
(gdb) bt
#0 0x101b17fb in wxAppBase::SendIdleEvents ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#1 0x101b1828 in wxAppBase::SendIdleEvents ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#2 0x101b16fe in wxAppBase::ProcessIdle ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#3 0x101e253f in wxEventLoopManual::Run ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#4 0x1015b79b in wxDialog::ShowModal ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#5 0x618aaa51 in PluginManager::Configure (this=0x1bacb08)
at c:/Usr/Proj/cbBeta/trunk/src/sdk/pluginmanager.cpp:1431
#6 0x00446fc5 in MainFrame::OnSettingsPlugins (this=0x14b9bb0,
event=@0x22f8ec) at c:/Usr/Proj/cbBeta/trunk/src/src/main.cpp:4067
#7 0x100c70d5 in wxEvtHandler::ProcessEventIfMatches ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#8 0x100c742c in wxEventHashTable::HandleEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#9 0x100c83f9 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#10 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#11 0x100c8399 in wxEvtHandler::ProcessEvent ()
---Type <return> to continue, or q <return> to quit---
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#12 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#13 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#14 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#15 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#16 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#17 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#18 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#19 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#20 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#21 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
#22 0x100c8399 in wxEvtHandler::ProcessEvent ()
from c:\usr\bin\wxmsw28u_gcc_custom.dll
---Type <return> to continue, or q <return> to quit---
...The "codesnippets.exe" stand-alone executable does not work...
Thanks, fixed in svn 5126
I saw the changes and it's working now. ;-)
But... You quote all over the files that C::B is lying when it comes to GetConfigFolder(), but C::B is *not*. This method returns the current path of config files, which really is the one returned. What you are looking for is a special file, named [personality].conf under a special case, in the case of relocation (portable C::B). If you want to retrieve this file then the C::B documentation states what you have to do. You need to do something like:
PersonalityManager* PersMan = Manager::Get()->GetPersonalityManager();
wxString personality = PersMan->GetPersonality();
ConfigManager* CfgMan = Manager::Get()->GetConfigManager(_T("app"));
wxString current_conf_file = CfgMan->LocateDataFile(personality+_T(".conf"), sdAllKnown);
This way, current_conf_file is retrieved "the right way". Hence the config folder may be different. This is just a special case if ConfigManager::relo is true.
g++ -DHAVE_CONFIG_H -I. -I../../../../../src/include -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -I../../../../../src/include -I../../../../../src/include/wxscintilla/include -I../../../../../src/plugins/contrib/codesnippets -I../../../../../src/plugins/contrib/codesnippets/Search -I../../../../../src/plugins/contrib/codesnippets/editor -I../../../../../src/include/wxFlatNotebook/include -Ulinux -Uunix -O2 -ffast-math -g -O2 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT editproperties.o -MD -MP -MF .deps/editproperties.Tpo -c -o editproperties.o `test -f '../editor/editproperties.cpp' || echo './'`../editor/editproperties.cpp
mv -f .deps/editproperties.Tpo .deps/editproperties.Po
make[1]: *** No rule to make target `../prefs.cpp', needed by `prefs.o'. Stop.
make[1]: Leaving directory `/home/psyhlo/devel/cb-src/src/plugins/contrib/codesnippets/resources'
make: *** [all-recursive] Error 1
latest svn 5129
linux Ubuntu 8.04 gcc ver 4.2.3