View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004091 | Plugins | Advanced compare | public | 2026-02-14 18:43 | 2026-02-15 11:08 |
| Reporter | DimonRuses | Assigned To | |||
| Priority | normal | Severity | crash | Reproducibility | always |
| Status | new | Resolution | open | ||
| Platform | x64 | OS | Windows | OS Version | 10 |
| Product Version | 3.0 | ||||
| Summary | 0004091: The plugin crashes when comparing files under the cursor (F2). | ||||
| Description | When comparing files under the cursor (F2 hotkey), the plugin crashes with an error. The files are exactly the same (I checked with other programs), but they are located in different folders. The file is called "wizard.script". Attached to this message. I also attached the Far error report. It's in the archive. | ||||
| Tags | AdvCmpEx | ||||
|
|
|
|
|
wizard.script (6,956 bytes)
////////////////////////////////////////////////////////////////////////////////
//
// FLTK project wizard
//
////////////////////////////////////////////////////////////////////////////////
// globals (windows only)
FltkPathRelease <- _T("$(#fl)");
FltkPathReleaseInc <- _T("$(#fl.include)");
FltkPathReleaseLib <- _T("$(#fl.lib)");
FltkPathReleaseBin <- _T("$(#fl.bin)");
FltkPathDebug <- _T("$(#fld)");
FltkPathDebugInc <- _T("$(#fld.include)");
FltkPathDebugLib <- _T("$(#fld.lib)");
FltkPathDebugBin <- _T("$(#fld.bin)");
FltkPath <- _T("");
FLTKQuickProject <- true;
function BeginWizard()
{
local intro_msg = _("Welcome to the new FLTK project wizard!\n\n") +
_("This wizard will guide you to create a new project\nusing the FLTK GUI C++ library.\n\n") +
_("When you're ready to proceed, please click \"Next\"...");
// "select fltk project to generate" text
local fltkprjtype_descr = _("Please select the type of project to generate.");
local fltkprj_choices = _("Simple main() example;FLUID-based project");
Wizard.AddInfoPage(_T("FltkIntro"), intro_msg);
Wizard.AddProjectPathPage();
if (PLATFORM == PLATFORM_MSW)
{
local fltkpath_descr = _("Please select the location of FLTK on your computer.\n") +
_("This is the top-level folder where FLTK was installed (unpacked).\n") +
_("To help you, this folder must contain the subfolders\n\"include\" and \"lib\".\n\n") +
_("You can also use a global variable, p.e. $(#fl)\n");
Wizard.AddGenericSelectPathPage(_T("FltkPath"), fltkpath_descr, _("Please select FLTK's location:"), FltkPathRelease);
}
Wizard.AddGenericSingleChoiceListPage(_T("FLTKPrjType"), fltkprjtype_descr, fltkprj_choices, 0);
Wizard.AddCompilerPage(_T(""), _T("*"), true, true);
}
////////////////////////////////////////////////////////////////////////////////
// FLTK's path page
////////////////////////////////////////////////////////////////////////////////
function OnLeave_FltkPath(fwd)
{
if (fwd)
{
local dir = Wizard.GetTextControlValue(_T("txtFolder")); // txtFolder is the text control in GenericSelectPathPage
local dir_nomacro = VerifyDirectory(dir);
if (dir_nomacro.IsEmpty())
return false;
// verify include dependencies
local dir_nomacro_inc = GetCompilerIncludeDir(dir, FltkPathRelease, FltkPathReleaseInc);
if (dir_nomacro_inc.IsEmpty())
return false;
if (!VerifyFile(dir_nomacro_inc + wxFILE_SEP_PATH + _T("FL"), _T("Fl.H"), _("FLTK's include")))
{
return false;
}
// verify library dependencies
local dir_nomacro_lib = GetCompilerLibDir(dir, FltkPathRelease, FltkPathReleaseLib);
if (dir_nomacro_lib.IsEmpty())
return false;
if (!VerifyLibFile(dir_nomacro_lib, _T("fltk"), _("FLTK's"))) return false;
FltkPath = dir; // Remember the original selection.
local is_macro = _T("");
// try to resolve the include directory as macro
is_macro = GetCompilerIncludeMacro(dir, FltkPathRelease, FltkPathReleaseInc);
if (is_macro.IsEmpty())
{
// not possible -> use the real inc path we had computed instead
FltkPathReleaseInc = dir_nomacro_inc;
}
// try to resolve the library directory as macro
is_macro = GetCompilerLibMacro(dir, FltkPathRelease, FltkPathReleaseLib);
if (is_macro.IsEmpty())
{
// not possible -> use the real lib path we had computed instead
FltkPathReleaseLib = dir_nomacro_lib;
}
}
return true;
}
////////////////////////////////////////////////////////////////////////////////
// Project type to create
////////////////////////////////////////////////////////////////////////////////
function OnLeave_FLTKPrjType(fwd)
{
if (fwd)
{
FLTKQuickProject = Wizard.GetListboxSelection(_T("GenericChoiceList")) == 0;
}
return true;
}
// return the files this project contains
function GetFilesDir()
{
if (FLTKQuickProject)
return _T("fltk/files");
return _T("fltk/fluid");
}
// setup the already created project
function SetupProject(project)
{
if (PLATFORM == PLATFORM_MSW)
{
// set project options
// add link libraries
project.AddLinkLib(_T("fltk"));
project.AddLinkLib(_T("ole32"));
project.AddLinkLib(_T("uuid"));
project.AddLinkLib(_T("comctl32"));
project.AddLinkLib(_T("wsock32"));
project.AddLinkLib(_T("m"));
project.AddLinkLib(_T("gdi32"));
project.AddLinkLib(_T("gdiplus"));
project.AddLinkLib(_T("user32"));
project.AddLinkLib(_T("kernel32"));
project.AddLinkLib(_T("winspool"));
project.AddLinkLib(_T("comdlg32"));
project.AddCompilerOption(_T("-DWIN32"))
project.AddCompilerOption(_T("-mms-bitfields"))
}
else // PLATFORM != PLATFORM_MSW
{
// fltk-config based: things are ultra-simple :)
project.AddCompilerOption(_T("`fltk-config --cxxflags`"));
project.AddLinkerOption(_T("`fltk-config --ldstaticflags`"));
}
// Debug
local target = project.GetBuildTarget(Wizard.GetDebugName());
if (!IsNull(target))
{
target.SetTargetType(ttConsoleOnly); // ttConsoleOnly: console for debugging
target.SetOutputFilename(Wizard.GetDebugOutputDir() + Wizard.GetProjectName() + DOT_EXT_EXECUTABLE);
if (Wizard.GetCompilerID().Matches(_T("gcc")))
{
// enable generation of debugging symbols for target
// Note: DebugSymbolsOn() won't work because -Wall produces far too many warnings
target.AddCompilerOption(_T("-g"));
target.AddIncludeDir(FltkPathDebugInc);
target.AddLibDir(FltkPathDebugLib);
target.AddLibDir(FltkPathDebugBin);
}
}
// Release
target = project.GetBuildTarget(Wizard.GetReleaseName());
if (!IsNull(target))
{
target.SetTargetType(ttExecutable); // ttExecutable: no console
target.SetOutputFilename(Wizard.GetReleaseOutputDir() + Wizard.GetProjectName() + DOT_EXT_EXECUTABLE);
if (Wizard.GetCompilerID().Matches(_T("gcc")))
{
// enable optimizations for target.
// Note: OptimizationsOn() won't work because of -I-!
target.AddCompilerOption(_T("-O2"));
target.AddCompilerOption(_T("-s"));
target.AddIncludeDir(FltkPathReleaseInc);
target.AddLibDir(FltkPathReleaseLib);
target.AddLibDir(FltkPathReleaseBin);
}
}
return true;
}
|
|
|
Far Group do not support not standart plugin |
|
|
But it is still maintained on forum. Try the latest versiom btw https://forum.farmanager.com/viewtopic.php?p=182087#p182087 |
|
|
Thanks for the tip. I have the latest version. I wrote to the developer on github. https://github.com/FarPlugins/AdvCmpEx/issues/6 |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-02-14 18:43 | DimonRuses | New Issue | |
| 2026-02-14 18:43 | DimonRuses | Tag Attached: AdvCmpEx | |
| 2026-02-14 18:43 | DimonRuses | File Added: bug_report.txt | |
| 2026-02-14 18:43 | DimonRuses | File Added: far.mdmp | |
| 2026-02-14 18:45 | DimonRuses | Note Added: 0017655 | |
| 2026-02-14 18:45 | DimonRuses | File Added: wizard.script | |
| 2026-02-14 22:25 | sdindikov | Note Added: 0017656 | |
| 2026-02-15 09:49 | JohnDoe | Note Added: 0017657 | |
| 2026-02-15 11:08 | DimonRuses | Note Added: 0017658 |