[codeblocks] - xterm is the default terminal application, added as Requires (#622753) - backport D language suppo

Dan Horák sharkcz at fedoraproject.org
Mon Aug 30 10:45:21 UTC 2010


commit cc5848ada2b5641183837b8b47e1e9c8aa5c1319
Author: Dan Horák <dan at danny.cz>
Date:   Mon Aug 30 12:45:18 2010 +0200

    - xterm is the default terminal application, added as Requires (#622753)
    - backport D language support from trunk (http://fedoraproject.org/wiki/Features/D_Programming)

 codeblocks-10.05-D.patch |  482 ++++++++++++++++++++++++++++++++++++++++++++++
 codeblocks.spec          |   10 +-
 2 files changed, 491 insertions(+), 1 deletions(-)
---
diff --git a/codeblocks-10.05-D.patch b/codeblocks-10.05-D.patch
new file mode 100644
index 0000000..5fe439a
--- /dev/null
+++ b/codeblocks-10.05-D.patch
@@ -0,0 +1,482 @@
+From d4a53449abd8759d7935c6b97d0e527d3c87fc8b Mon Sep 17 00:00:00 2001
+From: afb <afb at 98b59c6a-2706-0410-b7d6-d2fa1a1880c9>
+Date: Sat, 28 Aug 2010 13:36:34 +0000
+Subject: [PATCH 1/4] * allow running DMD on all platforms
+
+git-svn-id: svn://svn.berlios.de/codeblocks/trunk@6553 98b59c6a-2706-0410-b7d6-d2fa1a1880c9
+---
+ src/plugins/compilergcc/compilerDMD.cpp |    5 -----
+ src/plugins/compilergcc/compilerDMD.h   |    5 -----
+ src/plugins/compilergcc/compilergcc.cpp |    2 +-
+ 3 files changed, 1 insertions(+), 11 deletions(-)
+
+diff --git a/src/plugins/compilergcc/compilerDMD.cpp b/src/plugins/compilergcc/compilerDMD.cpp
+index 538db2c..3e23aae 100644
+--- a/src/plugins/compilergcc/compilerDMD.cpp
++++ b/src/plugins/compilergcc/compilerDMD.cpp
+@@ -7,9 +7,6 @@
+  * $HeadURL: svn+ssh://jenslody@svn.berlios.de/svnroot/repos/codeblocks/trunk/src/plugins/compilergcc/compilerDMD.cpp $
+  */
+ 
+-#if defined(_WIN32) || defined(__linux__)
+-// this compiler is valid only in windows and linux
+-
+ #include <sdk.h>
+ #include <prep.h>
+ #include <wx/intl.h>
+@@ -182,5 +179,3 @@ AutoDetectResult CompilerDMD::AutoDetectInstallationDir()
+ 
+     return wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C) ? adrDetected : adrGuessed;
+ }
+-
+-#endif // _WIN32 || linux
+diff --git a/src/plugins/compilergcc/compilerDMD.h b/src/plugins/compilergcc/compilerDMD.h
+index 0f5a431..5e0eab4 100644
+--- a/src/plugins/compilergcc/compilerDMD.h
++++ b/src/plugins/compilergcc/compilerDMD.h
+@@ -3,9 +3,6 @@
+  * http://www.gnu.org/licenses/gpl-3.0.html
+  */
+ 
+-#if defined(_WIN32) || defined(__linux__)
+-// this compiler is valid only in windows and linux
+-
+ #ifndef COMPILERDMD_H
+ #define COMPILERDMD_H
+ 
+@@ -25,5 +22,3 @@ class CompilerDMD : public Compiler
+ };
+ 
+ #endif // COMPILERDMD_H
+-
+-#endif // _WIN32 || linux
+diff --git a/src/plugins/compilergcc/compilergcc.cpp b/src/plugins/compilergcc/compilergcc.cpp
+index c9964fc..be44e72 100644
+--- a/src/plugins/compilergcc/compilergcc.cpp
++++ b/src/plugins/compilergcc/compilergcc.cpp
+@@ -394,8 +394,8 @@ void CompilerGCC::OnAttach()
+     CompilerFactory::RegisterCompiler(new CompilerSDCC);
+     CompilerFactory::RegisterCompiler(new CompilerTcc);
+     CompilerFactory::RegisterCompiler(new CompilerGDC);
+-#if defined(__WIN32__) || defined(__linux__)
+     CompilerFactory::RegisterCompiler(new CompilerDMD);
++#if defined(__WIN32__) || defined(__linux__)
+     CompilerFactory::RegisterCompiler(new CompilerGNUARM);
+     CompilerFactory::RegisterCompiler(new CompilerGNUAVR);
+     CompilerFactory::RegisterCompiler(new CompilerGNUPOWERPC);
+-- 
+1.7.2.2
+
+
+From eb7ef89d0b01eb11f742a899f75bb0b0284d40fd Mon Sep 17 00:00:00 2001
+From: afb <afb at 98b59c6a-2706-0410-b7d6-d2fa1a1880c9>
+Date: Sat, 28 Aug 2010 13:41:07 +0000
+Subject: [PATCH 2/4] * add LDC compiler, LLVM backend / D1 language / Tango library
+
+git-svn-id: svn://svn.berlios.de/codeblocks/trunk@6554 98b59c6a-2706-0410-b7d6-d2fa1a1880c9
+---
+ src/CodeBlocks-unix.cbp                 |    6 ++
+ src/CodeBlocks.cbp                      |    6 ++
+ src/plugins/compilergcc/Makefile.am     |    4 +-
+ src/plugins/compilergcc/compilerLDC.cpp |  142 +++++++++++++++++++++++++++++++
+ src/plugins/compilergcc/compilerLDC.h   |   24 +++++
+ src/plugins/compilergcc/compilergcc.cpp |    2 +
+ 6 files changed, 183 insertions(+), 1 deletions(-)
+ create mode 100644 src/plugins/compilergcc/compilerLDC.cpp
+ create mode 100644 src/plugins/compilergcc/compilerLDC.h
+
+diff --git a/src/CodeBlocks-unix.cbp b/src/CodeBlocks-unix.cbp
+index eb2d9da..c3c8585 100644
+--- a/src/CodeBlocks-unix.cbp
++++ b/src/CodeBlocks-unix.cbp
+@@ -1144,6 +1144,12 @@
+ 		<Unit filename="plugins/compilergcc/compilerGDC.h">
+ 			<Option target="Compiler" />
+ 		</Unit>
++		<Unit filename="plugins/compilergcc/compilerLDC.cpp">
++			<Option target="Compiler" />
++		</Unit>
++		<Unit filename="plugins/compilergcc/compilerLDC.h">
++			<Option target="Compiler" />
++		</Unit>
+ 		<Unit filename="plugins/compilergcc/compilerGNUARM.cpp">
+ 			<Option target="Compiler" />
+ 		</Unit>
+diff --git a/src/CodeBlocks.cbp b/src/CodeBlocks.cbp
+index 47a2196..5a7b2bf 100644
+--- a/src/CodeBlocks.cbp
++++ b/src/CodeBlocks.cbp
+@@ -1244,6 +1244,12 @@
+ 		<Unit filename="plugins\compilergcc\compilerGDC.h">
+ 			<Option target="Compiler" />
+ 		</Unit>
++		<Unit filename="plugins\compilergcc\compilerLDC.cpp">
++			<Option target="Compiler" />
++		</Unit>
++		<Unit filename="plugins\compilergcc\compilerLDC.h">
++			<Option target="Compiler" />
++		</Unit>
+ 		<Unit filename="plugins\compilergcc\compilerGNUARM.cpp">
+ 			<Option target="Compiler" />
+ 		</Unit>
+diff --git a/src/plugins/compilergcc/Makefile.am b/src/plugins/compilergcc/Makefile.am
+index 8efa5bf..fe4b245 100644
+--- a/src/plugins/compilergcc/Makefile.am
++++ b/src/plugins/compilergcc/Makefile.am
+@@ -27,6 +27,7 @@ libcompiler_la_SOURCES = advancedcompileroptionsdlg.cpp \
+ 			compilererrors.cpp \
+ 			compilergcc.cpp \
+ 			compilerGDC.cpp \
++			compilerLDC.cpp \
+ 			compilerICC.cpp \
+ 			compilerLCC.cpp \
+ 			compilermessages.cpp \
+@@ -55,6 +56,7 @@ noinst_HEADERS = advancedcompileroptionsdlg.h \
+ 			compilererrors.h \
+ 			compilergcc.h \
+ 			compilerGDC.h \
++			compilerLDC.h \
+ 			compilerICC.h \
+ 			compilerLCC.h \
+ 			compilermessages.h \
+@@ -75,4 +77,4 @@ noinst_HEADERS = advancedcompileroptionsdlg.h \
+ 			makefilegenerator.h
+ 
+ EXTRA_DIST = compilerMSVC8.h \
+-			compilerMSVC8.cpp
+\ No newline at end of file
++			compilerMSVC8.cpp
+diff --git a/src/plugins/compilergcc/compilerLDC.cpp b/src/plugins/compilergcc/compilerLDC.cpp
+new file mode 100644
+index 0000000..ab60488
+--- /dev/null
++++ b/src/plugins/compilergcc/compilerLDC.cpp
+@@ -0,0 +1,142 @@
++/*
++ * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3
++ * http://www.gnu.org/licenses/gpl-3.0.html
++ *
++ * $Revision: 5929 $
++ * $Id: compilerLDC.cpp $
++ * $HeadURL: svn://svn.berlios.de/codeblocks/trunk/src/plugins/compilergcc/compilerLDC.cpp $
++ */
++
++#include <sdk.h>
++#include <prep.h>
++#include "compilerLDC.h"
++#include <wx/intl.h>
++#include <wx/regex.h>
++#include <wx/config.h>
++#include <wx/fileconf.h>
++#include <wx/msgdlg.h>
++#include "manager.h"
++#include "logmanager.h"
++
++#include <configmanager.h>
++
++CompilerLDC::CompilerLDC()
++    : Compiler(_("LLVM D Compiler"), _T("ldc"))
++{
++    Reset();
++}
++
++CompilerLDC::~CompilerLDC()
++{
++    //dtor
++}
++
++Compiler * CompilerLDC::CreateCopy()
++{
++    Compiler* c = new CompilerLDC(*this);
++    c->SetExtraPaths(m_ExtraPaths); // wxArrayString doesn't seem to be copied with the default copy ctor...
++    return c;
++}
++
++void CompilerLDC::Reset()
++{
++    m_Programs.C = _T("ldc");
++    m_Programs.CPP = _T("ldc");
++    m_Programs.LD = _T("ldc");
++    m_Programs.DBG = _T("gdb");
++    m_Programs.LIB = _T("ar");
++    m_Programs.WINDRES = _T("");
++    m_Programs.MAKE = _T("make");
++
++    m_Switches.includeDirs = _T("-I");
++    m_Switches.libDirs = _T("-L");
++    m_Switches.linkLibs = _T("-l");
++    m_Switches.defines = _T("-d-version=");
++    m_Switches.genericSwitch = _T("-");
++    m_Switches.objectExtension = _T("o");
++    m_Switches.needDependencies = true;
++    m_Switches.forceCompilerUseQuotes = false;
++    m_Switches.forceLinkerUseQuotes = false;
++    m_Switches.logging = clogSimple;
++    m_Switches.libPrefix = _T("lib");
++    m_Switches.libExtension = _T("a");
++    m_Switches.linkerNeedsLibPrefix = false;
++    m_Switches.linkerNeedsLibExtension = false;
++
++    m_Options.ClearOptions();
++    m_Options.AddOption(_("Produce debugging symbols"),
++                _T("-g"),
++                _("Debugging"),
++                _T(""),
++                true,
++                _T("-O1 -O2 -O3"),
++                _("You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols..."));
++
++    wxString category = _("Warnings");
++
++    // warnings
++    m_Options.AddOption(_("Enable warnings"), _T("-w"), category);
++    // D features
++    category = _("D");
++    m_Options.AddOption(_("allow deprecated features"), _T("-d"), category);
++    m_Options.AddOption(_("inline expand functions"), _T("-enable-inlining"), category);
++    m_Options.AddOption(_("enable array bounds checks"), _T("-enable-boundscheck"), category);
++    m_Options.AddOption(_("enable contracts"), _T("-enable-contracts"), category);
++    m_Options.AddOption(_("enable assertions"), _T("-enable-asserts"), category);
++    m_Options.AddOption(_("enable invariants"), _T("-enable-invariants"), category);
++ 
++    // optimization
++    category = _("Optimization");
++    m_Options.AddOption(_("No optimization"), _T("-O0"), category);
++    m_Options.AddOption(_("Simple optimizations"), _T("-O1"), category);
++    m_Options.AddOption(_("Good optimizations"), _T("-O2"), category);
++    m_Options.AddOption(_("Aggressive optimizations"), _T("-O3"), category);
++    // machine dependent options - cpu arch
++    category = _("CPU architecture tuning (choose none, or only one of these)");
++    m_Options.AddOption(_("32-bit X86: Pentium-Pro and above"), _T("-march=x86"), category);
++    m_Options.AddOption(_("64-bit X86: EM64T and AMD64"), _T("-march=x86-64"), category);
++
++    m_Commands[(int)ctCompileObjectCmd].push_back(CompilerTool(_T("$compiler $options $includes -c $file -of=$object")));
++    m_Commands[(int)ctGenDependenciesCmd].push_back(CompilerTool(_T("$compiler $options -deps=$dep_object $includes $file")));
++    m_Commands[(int)ctCompileResourceCmd].push_back(CompilerTool(_T("$rescomp -i $file -J rc -o $resource_output -O coff $res_includes")));
++    m_Commands[(int)ctLinkConsoleExeCmd].push_back(CompilerTool(_T("$linker $libdirs -of=$exe_output $link_objects $link_resobjects $link_options $libs")));
++    m_Commands[(int)ctLinkExeCmd] = m_Commands[(int)ctLinkConsoleExeCmd]; // no -mwindows
++    m_Commands[(int)ctLinkDynamicCmd].push_back(CompilerTool(_T("$linker -shared $libdirs $link_objects $link_resobjects -o $exe_output $link_options $libs")));
++    m_Commands[(int)ctLinkStaticCmd].push_back(CompilerTool(_T("$lib_linker -r $static_output $link_objects\nranlib $static_output")));
++    m_Commands[(int)ctLinkNativeCmd] = m_Commands[(int)ctLinkConsoleExeCmd]; // unsupported currently
++
++    LoadDefaultRegExArray();
++
++    m_CompilerOptions.Clear();
++    m_LinkerOptions.Clear();
++    m_LinkLibs.Clear();
++    m_CmdsBefore.Clear();
++    m_CmdsAfter.Clear();
++}
++
++void CompilerLDC::LoadDefaultRegExArray()
++{
++    m_RegExes.Clear();
++    m_RegExes.Add(RegExStruct(_("Fatal error"), cltError, _T("FATAL:[ \t]*(.*)"), 1));
++    m_RegExes.Add(RegExStruct(_("'Instantiated from here' info"), cltNormal, _T("(") + FilePathWithSpaces + _T("):([0-9]+):[ \t]+([iI]nstantiated from here.*)"), 3, 1, 2));    m_RegExes.Add(RegExStruct(_("Resource compiler error"), cltError, _T("windres.exe:[ \t](") + FilePathWithSpaces + _T("):([0-9]+):[ \t](.*)"), 3, 1, 2));
++    m_RegExes.Add(RegExStruct(_("Resource compiler error"), cltError, _T("windres.exe:[ \t](") + FilePathWithSpaces + _T("):([0-9]+):[ \t](.*)"), 3, 1, 2));
++    m_RegExes.Add(RegExStruct(_("Resource compiler error (2)"), cltError, _T("windres.exe:[ \t](.*)"), 1));
++    m_RegExes.Add(RegExStruct(_("Compiler warning"), cltWarning, _T("(") + FilePathWithSpaces + _T(")\\(([0-9]+)\\):[ \t]([Ww]arning:[ \t].*)"), 3, 1, 2));
++    m_RegExes.Add(RegExStruct(_("Compiler error"), cltError, _T("(") + FilePathWithSpaces + _T(")\\(([0-9]+)\\):[ \t](.*)"), 3, 1, 2));
++    m_RegExes.Add(RegExStruct(_("Linker error"), cltError, _T("(") + FilePathWithSpaces + _T("):([0-9]+):[0-9]+:[ \t](.*)"), 3, 1, 2));
++    m_RegExes.Add(RegExStruct(_("Linker error (2)"), cltError, FilePathWithSpaces + _T("\\(.text\\+[0-9A-Za-z]+\\):([ \tA-Za-z0-9_:+/\\.-]+):[ \t](.*)"), 2, 1));
++    m_RegExes.Add(RegExStruct(_("Linker error (lib not found)"), cltError, _T(".*(ld.*):[ \t](cannot find.*)"), 2, 1));
++    m_RegExes.Add(RegExStruct(_("Undefined reference"), cltError, _T("(") + FilePathWithSpaces + _T("):[ \t](undefined reference.*)"), 2, 1));
++    m_RegExes.Add(RegExStruct(_("General warning"), cltWarning, _T("([Ww]arning:[ \t].*)"), 1));
++}
++
++AutoDetectResult CompilerLDC::AutoDetectInstallationDir()
++{
++    wxString sep = wxFileName::GetPathSeparator();
++    m_MasterPath = wxFileExists(_T("/usr/local/bin/ldc")) ? _T("/usr/local") : _T("/usr");
++    
++    AddIncludeDir(m_MasterPath + sep + _T("import"));
++    AddLibDir(m_MasterPath + sep + _T("lib"));
++
++    return wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C) ? adrDetected : adrGuessed;
++}
+diff --git a/src/plugins/compilergcc/compilerLDC.h b/src/plugins/compilergcc/compilerLDC.h
+new file mode 100644
+index 0000000..e540dd6
+--- /dev/null
++++ b/src/plugins/compilergcc/compilerLDC.h
+@@ -0,0 +1,24 @@
++/*
++ * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3
++ * http://www.gnu.org/licenses/gpl-3.0.html
++ */
++
++#ifndef COMPILER_LDC_H
++#define COMPILER_LDC_H
++
++#include <compiler.h>
++
++class CompilerLDC : public Compiler
++{
++    public:
++        CompilerLDC();
++        virtual ~CompilerLDC();
++        virtual void Reset();
++        virtual void LoadDefaultRegExArray();
++        virtual AutoDetectResult AutoDetectInstallationDir();
++    protected:
++        virtual Compiler* CreateCopy();
++    private:
++};
++
++#endif // COMPILER_LDC_H
+diff --git a/src/plugins/compilergcc/compilergcc.cpp b/src/plugins/compilergcc/compilergcc.cpp
+index be44e72..1ffa63b 100644
+--- a/src/plugins/compilergcc/compilergcc.cpp
++++ b/src/plugins/compilergcc/compilergcc.cpp
+@@ -67,6 +67,7 @@
+ #include "compilerSDCC.h"
+ #include "compilerTcc.h"
+ #include "compilerGDC.h"
++#include "compilerLDC.h"
+ #include "compilerGNUPOWERPC.h"
+ #include "compilerGNUTRICORE.h"
+ 
+@@ -394,6 +395,7 @@ void CompilerGCC::OnAttach()
+     CompilerFactory::RegisterCompiler(new CompilerSDCC);
+     CompilerFactory::RegisterCompiler(new CompilerTcc);
+     CompilerFactory::RegisterCompiler(new CompilerGDC);
++    CompilerFactory::RegisterCompiler(new CompilerLDC);
+     CompilerFactory::RegisterCompiler(new CompilerDMD);
+ #if defined(__WIN32__) || defined(__linux__)
+     CompilerFactory::RegisterCompiler(new CompilerGNUARM);
+-- 
+1.7.2.2
+
+
+From 17eb9968e9d7aaa663b5fe2486c3ddfc69558f3e Mon Sep 17 00:00:00 2001
+From: afb <afb at 98b59c6a-2706-0410-b7d6-d2fa1a1880c9>
+Date: Sat, 28 Aug 2010 13:48:25 +0000
+Subject: [PATCH 3/4] - add LDC to D console wizard
+
+git-svn-id: svn://svn.berlios.de/codeblocks/trunk@6555 98b59c6a-2706-0410-b7d6-d2fa1a1880c9
+---
+ .../resources/common_functions.script              |    7 +++++--
+ .../scriptedwizard/resources/d/wizard.script       |    2 +-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/src/plugins/scriptedwizard/resources/common_functions.script b/src/plugins/scriptedwizard/resources/common_functions.script
+index 3f18fc0..c0ebd95 100644
+--- a/src/plugins/scriptedwizard/resources/common_functions.script
++++ b/src/plugins/scriptedwizard/resources/common_functions.script
+@@ -31,7 +31,8 @@ function WarningsOn(base, compilerID)
+         base.AddCompilerOption(_T("-Wall"));
+     }
+     else if (   GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("bcc*"))
+-             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("dmd")) )
++             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("dmd"))
++             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("ldc")) )
+     {
+         base.AddCompilerOption(_T("-w"));
+     }
+@@ -68,6 +69,7 @@ function DebugSymbolsOn(base, compilerID)
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("dmd"))
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("gcc"))
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("gdc"))
++             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("ldc"))
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("tcc")) )
+     {
+         base.AddCompilerOption(_T("-g"));
+@@ -115,7 +117,8 @@ function OptimizationsOn(base, compilerID)
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("gcc"))
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("tricore*"))
+              || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("ppc*"))
+-             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("gdc")) )
++             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("gdc"))
++             || GetCompilerFactory().CompilerInheritsFrom(compilerID, _T("ldc")) )
+     {
+         base.AddCompilerOption(_T("-O2"));
+ 
+diff --git a/src/plugins/scriptedwizard/resources/d/wizard.script b/src/plugins/scriptedwizard/resources/d/wizard.script
+index 3eb18a9..c5deac1 100644
+--- a/src/plugins/scriptedwizard/resources/d/wizard.script
++++ b/src/plugins/scriptedwizard/resources/d/wizard.script
+@@ -17,7 +17,7 @@ function BeginWizard()
+     // add builtin pages
+     Wizard.AddInfoPage(_T("DIntro"), intro_msg); // intro
+     Wizard.AddProjectPathPage(); // select project name and path
+-    Wizard.AddCompilerPage(_T(""), _T("dmd;gdc"), true, true); // select compiler and configurations
++    Wizard.AddCompilerPage(_T(""), _T("dmd;gdc;ldc"), true, true); // select compiler and configurations
+     // nothing more needs to be done here
+ }
+ 
+-- 
+1.7.2.2
+
+
+From 3367d355dc95f3afb2fa43b3097879ee096e320e Mon Sep 17 00:00:00 2001
+From: afb <afb at 98b59c6a-2706-0410-b7d6-d2fa1a1880c9>
+Date: Sat, 28 Aug 2010 13:50:09 +0000
+Subject: [PATCH 4/4] - codecompletion: add D icon for D keywords
+
+git-svn-id: svn://svn.berlios.de/codeblocks/trunk@6556 98b59c6a-2706-0410-b7d6-d2fa1a1880c9
+---
+ src/plugins/codecompletion/codecompletion.cpp |   39 ++++++++++++++++++++++++-
+ 1 files changed, 38 insertions(+), 1 deletions(-)
+
+diff --git a/src/plugins/codecompletion/codecompletion.cpp b/src/plugins/codecompletion/codecompletion.cpp
+index 4fe676b..dda8cd2 100644
+--- a/src/plugins/codecompletion/codecompletion.cpp
++++ b/src/plugins/codecompletion/codecompletion.cpp
+@@ -79,6 +79,36 @@ static const char * cpp_keyword_xpm[] = {
+ "  .......       ",
+ "                "};
+ 
++// bitmap for use as D keywords icon in code-completion list
++/* XPM */
++static const char *d_keyword_xpm[] = {
++/* width height num_colors chars_per_pixel */
++"    14    14      6            1",
++/* colors */
++"  c none",
++". c #fefefe",
++"# c #e43a3a",
++"a c #e40000",
++"b c #e48f8f",
++"c c #8f0000",
++/* pixels */
++"              ",
++"              ",
++"  .#aaaa#b.   ",
++"  baabb#aa#   ",
++"  ba#   baa#  ",
++"  ba#    bcab ",
++"  ba#     #a# ",
++"  ba#     bac ",
++"  ba#     ba# ",
++"  ba#     bc# ",
++"  ba#     #cb ",
++"  bcc    ac#  ",
++"  #aa###ac#   ",
++"  cccccc#b    "
++};
++
++
+ // bitmap for other-than-C++ keywords
+ // it's pretty nice actually :)
+ /* XPM */
+@@ -614,9 +644,16 @@ int CodeCompletion::CodeComplete()
+                     wxString lastSearch = m_NativeParser.LastAIGlobalSearch().Lower();
+                     int iidx = ilist->GetImageCount();
+                     bool isC = ft == ftHeader || ft == ftSource;
+-                    ed->GetControl()->RegisterImage(iidx, wxBitmap(isC ? cpp_keyword_xpm : unknown_keyword_xpm));
+                     // theme keywords
+                     HighlightLanguage lang = theme->GetLanguageForFilename(_T(".")+wxFileName(ed->GetFilename()).GetExt());
++                    wxString strLang = theme->GetLanguageName(lang);
++                    // if its sourcecode/header file and a known fileformat, show the corresponding icon
++                    if (isC && strLang==_T("C/C++"))
++                        ed->GetControl()->RegisterImage(iidx, wxBitmap(cpp_keyword_xpm));
++                    else if (isC && strLang==_T("D"))
++                        ed->GetControl()->RegisterImage(iidx, wxBitmap(d_keyword_xpm));
++                    else
++                        ed->GetControl()->RegisterImage(iidx, wxBitmap(unknown_keyword_xpm));
+                     // the first two keyword sets are the primary and secondary keywords (for most lexers at least)
+                     // but this is now configurable in global settings
+                     for (int i = 0; i <= wxSCI_KEYWORDSET_MAX; ++i)
+-- 
+1.7.2.2
+
diff --git a/codeblocks.spec b/codeblocks.spec
index af1c3f4..978a512 100644
--- a/codeblocks.spec
+++ b/codeblocks.spec
@@ -1,6 +1,6 @@
 Name:		codeblocks
 Version:	10.05
-Release:	3%{?dist}
+Release:	4%{?dist}
 Summary:	An open source, cross platform, free C++ IDE
 Group:		Development/Tools
 License:	GPLv3+
@@ -17,12 +17,15 @@ BuildRequires:	dos2unix
 BuildRequires:	desktop-file-utils
 Requires:	%{name}-libs = %{version}-%{release}
 Requires:	shared-mime-info
+Requires:	xterm
 # use system tinyxml lib
 Patch1:		%{name}-tinyxml.patch
 # https://bugzilla.redhat.com/show_bug.cgi?id=565198 (fully fixed in svn rev 6330)
 Patch2:		%{name}-dso.patch
 # update for tinyxml 2.6
 Patch3:		%{name}-tinyxml-26.patch
+# D support - svn revisions 6553-6556
+Patch4:         %{name}-10.05-D.patch
 
 %define		pkgdatadir	%{_datadir}/%{name}
 %define		pkglibdir	%{_libdir}/%{name}
@@ -86,6 +89,7 @@ Additional Code::Blocks plug-ins.
 %patch1 -p1 -b .tinyxml
 %patch2 -p1 -b .dso
 %patch3 -p1 -b .tinyxml-26
+%patch4 -p1 -b .D
 
 # convert EOLs
 find . -type f -and -not -name "*.cpp" -and -not -name "*.h" -and -not -name "*.png" -and -not -name "*.bmp" -and -not -name "*.c" -and -not -name "*.cxx" -and -not -name "*.ico" | sed "s/.*/\"\\0\"/" | xargs dos2unix --keepdate &> /dev/null
@@ -294,6 +298,10 @@ update-mime-database /usr/share/mime &> /dev/null || :
 
 
 %changelog
+* Sat Aug 28 2010 Dan Horák <dan at danny.cz> - 10.05-4
+- xterm is the default terminal application, added as Requires (#622753)
+- backport D language support from trunk (http://fedoraproject.org/wiki/Features/D_Programming)
+
 * Mon Jul 12 2010 Dan Horák <dan at danny.cz> - 10.05-3
 - rebuilt against wxGTK-2.8.11-2
 


More information about the scm-commits mailing list