From afe274416701a9e93c87b2bed45501a516ae1652 Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 15 Jul 2014 11:46:29 +0000 Subject: [PATCH] ide: Fixed handling of linker errors git-svn-id: svn://ultimatepp.org/upp/trunk@7512 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/Builders/Build.cpp | 3 +-- uppsrc/ide/Builders/GccBuilder.icpp | 1 + uppsrc/ide/Builders/MscBuilder.icpp | 1 + uppsrc/ide/Builders/OwcBuilder.icpp | 1 + uppsrc/ide/Builders/ScriptBuilder.icpp | 1 + uppsrc/ide/Errors.cpp | 8 ++++---- uppsrc/ide/app.tpp/special$en-us.tpp | 8 +++++--- uppsrc/ide/app.tpp/special$en-us.tppi | 4 ++-- 8 files changed, 16 insertions(+), 11 deletions(-) diff --git a/uppsrc/ide/Builders/Build.cpp b/uppsrc/ide/Builders/Build.cpp index ae1f2e880..57cbc3bed 100644 --- a/uppsrc/ide/Builders/Build.cpp +++ b/uppsrc/ide/Builders/Build.cpp @@ -309,6 +309,7 @@ bool MakeBuild::BuildPackage(const Workspace& wspc, int pkindex, int pknumber, i return false; if(link) { ok = b->Link(linkfile, linkopt, GetTargetMode().createmap); + PutLinkingEnd(ok); errors = PickErrors(); host->DeleteFile(errors); if(!ok || !errors.IsEmpty()) @@ -470,13 +471,11 @@ bool MakeBuild::Build(const Workspace& wspc, String mainparam, String outfile, b } } if(ok || !stoponerrors) { - PutLinking(); ok = BuildPackage(wspc, 0, build_order.GetCount(), build_order.GetCount() + 1, mainparam, outfile, linkfile, linkopt, ok) && ok; // Set the time of target to start-time, so that if any file changes during // compilation, it is recompiled during next build SetFileTime(target, start_time); - PutLinkingEnd(ok); } } EndBuilding(ok); diff --git a/uppsrc/ide/Builders/GccBuilder.icpp b/uppsrc/ide/Builders/GccBuilder.icpp index d7fb38688..7d5b2b6b8 100644 --- a/uppsrc/ide/Builders/GccBuilder.icpp +++ b/uppsrc/ide/Builders/GccBuilder.icpp @@ -380,6 +380,7 @@ bool GccBuilder::Link(const Vector& linkfile, const String& linkoptions, { if(!Wait()) return false; + PutLinking(); int time = GetTickCount(); for(int i = 0; i < linkfile.GetCount(); i++) if(GetFileTime(linkfile[i]) >= targettime) { diff --git a/uppsrc/ide/Builders/MscBuilder.icpp b/uppsrc/ide/Builders/MscBuilder.icpp index 145eb5826..bc2b36f62 100644 --- a/uppsrc/ide/Builders/MscBuilder.icpp +++ b/uppsrc/ide/Builders/MscBuilder.icpp @@ -541,6 +541,7 @@ bool MscBuilder::Link(const Vector& linkfile, const String& linkoptions, int time = GetTickCount(); if(!Wait()) return false; + PutLinking(); bool isgemsc10 = HasFlag("MSC10") || HasFlag("MSC10X64") || HasFlag("MSC11") || HasFlag("MSC11X64") || HasFlag("MSC12X64"); for(int i = 0; i < linkfile.GetCount(); i++) diff --git a/uppsrc/ide/Builders/OwcBuilder.icpp b/uppsrc/ide/Builders/OwcBuilder.icpp index 091ebafed..879503404 100644 --- a/uppsrc/ide/Builders/OwcBuilder.icpp +++ b/uppsrc/ide/Builders/OwcBuilder.icpp @@ -295,6 +295,7 @@ bool OwcBuilder::Link(const Vector& linkfile, const String& linkoptions, if (!Wait()) return false; + PutLinking(); const int linkfileCount = linkfile.GetCount(); for (int i = 0; i < linkfileCount; i++) diff --git a/uppsrc/ide/Builders/ScriptBuilder.icpp b/uppsrc/ide/Builders/ScriptBuilder.icpp index bdce97c80..423e63f71 100644 --- a/uppsrc/ide/Builders/ScriptBuilder.icpp +++ b/uppsrc/ide/Builders/ScriptBuilder.icpp @@ -238,6 +238,7 @@ bool ScriptBuilder::BuildPackage(const String& package, Vector& linkfile bool ScriptBuilder::Link(const Vector& linkfile, const String& linkoptions, bool) { + PutLinking(); int time = GetTickCount(); for(int i = 0; i < linkfile.GetCount(); i++) if(GetFileTime(linkfile[i]) >= targettime) { diff --git a/uppsrc/ide/Errors.cpp b/uppsrc/ide/Errors.cpp index 94098ec02..e54916bc4 100644 --- a/uppsrc/ide/Errors.cpp +++ b/uppsrc/ide/Errors.cpp @@ -204,6 +204,8 @@ void Ide::ClearErrorEditor() void Ide::ClearErrorEditor(String file) { + linking = false; + if(!mark_lines) return; if(file == editfile) @@ -212,8 +214,6 @@ void Ide::ClearErrorEditor(String file) FileData& fd = Filedata(file); ClearErrors(fd.lineinfo); } - - linking = false; } void Ide::SetErrorEditor() @@ -304,9 +304,9 @@ void Ide::PutLinking() void Ide::PutLinkingEnd(bool ok) { - if(!ok) { + if(!ok && linking) { addnotes = true; - error.Add(Null, Null, AttrText("Linker errors").Bold() + error.Add(Null, Null, AttrText("Linking has failed").Bold() .NormalPaper(HighlightSetup::GetHlStyle(HighlightSetup::PAPER_ERROR).color)); for(int i = 0; i < linking_line.GetCount(); i++) { ErrorInfo f; diff --git a/uppsrc/ide/app.tpp/special$en-us.tpp b/uppsrc/ide/app.tpp/special$en-us.tpp index 70d9f152d..5c93bfc5b 100644 --- a/uppsrc/ide/app.tpp/special$en-us.tpp +++ b/uppsrc/ide/app.tpp/special$en-us.tpp @@ -6,8 +6,10 @@ the most used key in theide!&] [s0;i150;O2; Use Alt`+Left to `"return`" to important places (e.g. where you have written something). Use Alt`+Right to go cycle this places forward.&] +[s0;i150;O2; Esc key closes the bottom pane (with compilation results +etc...)&] [s0;i150;O2; Rectangular blocks are activated by pressing ALT key.&] -[s0;i150;O2; You can copy files (from system file managers) into -text directly. If more than single file is on clipboard, all -text is copied.&] +[s0;i150;O2; You can copy files (Ctrl`+C in system file manager, +Ctrl`+V in TheIDE) into text directly. If more than single file +is on clipboard, all text is copied.&] [s0;i150;O2; Dragging file onto TheIDE opens it (as `"temp`" file).]] \ No newline at end of file diff --git a/uppsrc/ide/app.tpp/special$en-us.tppi b/uppsrc/ide/app.tpp/special$en-us.tppi index 8ee5cc569..38f659323 100644 --- a/uppsrc/ide/app.tpp/special$en-us.tppi +++ b/uppsrc/ide/app.tpp/special$en-us.tppi @@ -1,5 +1,5 @@ TITLE("Rectangular blocks are activated by pressing ALT key.") COMPRESSED -120,156,133,145,65,79,27,49,16,133,255,202,43,208,42,17,116,181,173,196,133,156,16,225,128,132,64,162,225,80,69,17,153,108,102,119,45,188,107,107,60,75,186,170,248,239,140,147,3,18,28,176,124,241,216,243,222,55,207,75,156,156,148,103,229,113,249,197,186,152,115,77,131,215,213,242,255,211,235,247,235,187,159,143,127,176,76,229,204,253,58,47,103,247,191,103,120,76,140,43,21,191,62,93,208,6,26,80,141,149,103,104,43,97,104,90,69,237,60,167,2,139,214,37,216,142,44,45,197,100,247,140,46,36,197,144,120,139,103,30,225,250,92,116,91,254,246,99,245,201,225,210,235,250,244,150,107,205,14,235,35,97,29,164,95,31,229,147,235,98,16,165,94,17,61,85,156,48,225,162,41,176,107,89,24,99,24,208,210,11,99,39,78,149,123,164,208,177,182,174,111,166,197,187,240,131,203,164,166,213,188,227,103,214,131,94,29,100,71,178,45,62,96,61,112,101,174,205,224,73,176,241,161,122,78,32,115,164,74,221,11,169,13,181,25,17,133,83,50,51,92,222,46,242,144,31, -53,254,26,94,69,61,170,16,199,67,82,152,212,18,58,164,49,41,119,251,18,58,234,169,97,73,83,139,200,24,149,255,41,182,78,204,222,143,5,110,106,203,81,50,177,233,100,47,235,216,183,217,0,193,148,189,139,155,96,248,103,32,239,15,205,118,99,134,142,63,141,52,23,106,154,140,187,23,8,217,109,209,242,205,252,26,33,114,111,255,167,152,80,178,252,141,45,90,250,249,217,180,88,173,222,0,200,217,194,185, +120,156,133,146,65,107,219,64,16,133,255,202,52,77,139,77,220,69,45,244,82,159,66,236,67,32,180,144,58,129,98,76,61,90,143,164,37,171,221,101,103,20,87,148,254,247,206,90,133,128,115,168,208,65,210,72,239,125,239,141,182,112,121,89,45,170,183,213,127,142,47,43,106,112,240,178,219,254,254,249,231,221,250,235,135,135,239,176,229,106,233,62,126,174,150,223,62,45,225,129,9,110,36,251,253,213,6,107,144,8,118,180,158,64,186,28,135,182,19,104,156,39,54,176,233,28,131,158,137,114,135,137,117,78,208,71,22,24,152,14,240,68,35,184,80,30,186,3,189,121,191,123,229,112,237,101,127,117,71,141,20,135,253,69,38,25,114,216,95,148,59,215,167,152,5,131,64,242,104,137,97,70,166,53,112,236,40,19,140,113,128,14,159,9,142,217,137,80,0,142,61,73,231,66,59,55,47,194,247,174,144,170,86,251,130,95,88,39,189,38,230,35,230,131,57,195,90,179,61,113,91,31,153,166,64,117,20,137,61,36,12,4,179,163,147,14,108,236,147,243,40,46,6,200,196,90, +36,3,137,53,198,204,207,228,238,201,106,136,118,240,152,161,246,209,62,49,160,6,64,43,238,25,69,59,170,71,72,42,193,202,14,215,119,155,226,125,142,244,67,211,90,12,234,154,198,169,120,152,77,187,185,41,245,242,200,66,253,105,0,61,6,108,41,47,254,237,238,177,204,55,29,221,174,214,115,189,212,42,132,126,9,28,92,86,44,63,26,184,109,116,93,185,20,163,250,133,65,53,78,66,218,147,102,179,222,165,58,106,75,11,64,239,167,143,117,162,32,142,94,53,183,202,216,182,37,198,73,32,22,183,201,26,98,162,160,191,137,192,12,89,215,172,180,73,151,92,94,155,155,221,238,47,104,205,228,149,