- change: turn on gcc compiler's "-pipe" option by default, to use pipe instead of temp files in compiliation (and make the life of SSD longer)

- fix: correctly save input histories for the find combo box in the Find dialog
 - add installer scripts
This commit is contained in:
royqh1979@gmail.com 2021-11-05 10:44:23 +08:00
parent 14254a2f15
commit 02d935fb32
18 changed files with 2615 additions and 73 deletions

View File

@ -1,9 +1,11 @@
Version 0.7.9 Beta Version 0.8 For Dev-C++ 7
- fix: find in the current file is not correcly saved in the search history - fix: find in the current file is not correcly saved in the search history
- fix: hit info not correctly displayed in the search result view - fix: hit info not correctly displayed in the search result view
- fix: If find in files found no hits, search result view will not be shown. - fix: If find in files found no hits, search result view will not be shown.
- fix: wront indents when paste one line content - fix: wront indents when paste one line content
- fix: Results of "find symbol usage" in project not correctly set in the search result view - fix: Results of "find symbol usage" in project not correctly set in the search result view
- change: turn on gcc compiler's "-pipe" option by default, to use pipe instead of temp files in compiliation (and make the life of SSD longer)
- fix: correctly save input histories for the find combo box in the Find dialog
Version 0.7.8 Version 0.7.8
- enhancement: In problem view's output control, indicates which line is different with the expected - enhancement: In problem view's output control, indicates which line is different with the expected

View File

@ -5,8 +5,10 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17 CONFIG += c++17
CONFIG += nokey CONFIG += nokey
QMAKE_CXXFLAGS_RELEASE += -Werror=return-type gcc {
QMAKE_CXXFLAGS_DEBUG += -Werror=return-type QMAKE_CXXFLAGS_RELEASE += -Werror=return-type
QMAKE_CXXFLAGS_DEBUG += -Werror=return-type
}
# You can make your code fail to compile if it uses deprecated APIs. # You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line. # In order to do so, uncomment the following line.

View File

@ -813,18 +813,18 @@ Are you really want to continue?</source>
<context> <context>
<name>CppRefacter</name> <name>CppRefacter</name>
<message> <message>
<location filename="cpprefacter.cpp" line="91"/> <location filename="cpprefacter.cpp" line="101"/>
<location filename="cpprefacter.cpp" line="103"/> <location filename="cpprefacter.cpp" line="113"/>
<source>Rename Symbol Error</source> <source>Rename Symbol Error</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="cpprefacter.cpp" line="92"/> <location filename="cpprefacter.cpp" line="102"/>
<source>Can&apos;t rename symbols not defined in this file.</source> <source>Can&apos;t rename symbols not defined in this file.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="cpprefacter.cpp" line="104"/> <location filename="cpprefacter.cpp" line="114"/>
<source>New symbol already exists!</source> <source>New symbol already exists!</source>
<translation>使</translation> <translation>使</translation>
</message> </message>
@ -5562,33 +5562,33 @@ Are you really want to continue?</source>
<translation>(-S)</translation> <translation>(-S)</translation>
</message> </message>
<message> <message>
<location filename="settings.cpp" line="2383"/> <location filename="settings.cpp" line="2398"/>
<location filename="settings.cpp" line="2410"/> <location filename="settings.cpp" line="2425"/>
<source>Confirm</source> <source>Confirm</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="settings.cpp" line="2384"/> <location filename="settings.cpp" line="2399"/>
<source>The following problems were found during validation of compiler set &quot;%1&quot;:</source> <source>The following problems were found during validation of compiler set &quot;%1&quot;:</source>
<translation>&quot;%1&quot;</translation> <translation>&quot;%1&quot;</translation>
</message> </message>
<message> <message>
<location filename="settings.cpp" line="2388"/> <location filename="settings.cpp" line="2403"/>
<source>Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths?</source> <source>Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths?</source>
<translation>C++</translation> <translation>C++</translation>
</message> </message>
<message> <message>
<location filename="settings.cpp" line="2390"/> <location filename="settings.cpp" line="2405"/>
<source>Leaving those directories will lead to problems during compilation.&lt;br /&gt;&lt;br /&gt;Unless you know exactly what you&apos;re doing, it is recommended that you click Yes.</source> <source>Leaving those directories will lead to problems during compilation.&lt;br /&gt;&lt;br /&gt;Unless you know exactly what you&apos;re doing, it is recommended that you click Yes.</source>
<translation>&lt;br /&gt;&lt;br /&gt;</translation> <translation>&lt;br /&gt;&lt;br /&gt;</translation>
</message> </message>
<message> <message>
<location filename="settings.cpp" line="2411"/> <location filename="settings.cpp" line="2426"/>
<source>Compiler set not configuared.</source> <source>Compiler set not configuared.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="settings.cpp" line="2413"/> <location filename="settings.cpp" line="2428"/>
<source>Would you like Red Panda C++ to search for compilers in the following locations: &lt;BR /&gt;&apos;%1&apos;&lt;BR /&gt;&apos;%2&apos;? </source> <source>Would you like Red Panda C++ to search for compilers in the following locations: &lt;BR /&gt;&apos;%1&apos;&lt;BR /&gt;&apos;%2&apos;? </source>
<translation>C++&lt;br /&gt;%1&lt;br /&gt;%2</translation> <translation>C++&lt;br /&gt;%1&lt;br /&gt;%2</translation>
</message> </message>
@ -6114,7 +6114,7 @@ Are you really want to continue?</source>
<message> <message>
<location filename="widgets/searchdialog.cpp" line="23"/> <location filename="widgets/searchdialog.cpp" line="23"/>
<location filename="widgets/searchdialog.cpp" line="136"/> <location filename="widgets/searchdialog.cpp" line="136"/>
<location filename="widgets/searchdialog.cpp" line="229"/> <location filename="widgets/searchdialog.cpp" line="231"/>
<source>Replace</source> <source>Replace</source>
<translation></translation> <translation></translation>
</message> </message>
@ -6124,7 +6124,7 @@ Are you really want to continue?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="widgets/searchdialog.cpp" line="230"/> <location filename="widgets/searchdialog.cpp" line="232"/>
<source>Replace this occurrence of &apos;&apos;%1&apos;&apos;?</source> <source>Replace this occurrence of &apos;&apos;%1&apos;&apos;?</source>
<translation>&quot;%1&quot;</translation> <translation>&quot;%1&quot;</translation>
</message> </message>
@ -6132,30 +6132,39 @@ Are you really want to continue?</source>
<context> <context>
<name>SearchResultListModel</name> <name>SearchResultListModel</name>
<message> <message>
<location filename="widgets/searchresultview.cpp" line="363"/> <location filename="widgets/searchresultview.cpp" line="365"/>
<source>Current File:</source> <source>Current File:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="widgets/searchresultview.cpp" line="365"/> <location filename="widgets/searchresultview.cpp" line="367"/>
<source>Files In Project:</source> <source>Files In Project:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="widgets/searchresultview.cpp" line="367"/> <location filename="widgets/searchresultview.cpp" line="369"/>
<source>Open Files:</source> <source>Open Files:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="widgets/searchresultview.cpp" line="370"/> <location filename="widgets/searchresultview.cpp" line="373"/>
<source>Find Usages in Current File: &apos;%1&apos;</source>
<translation>&quot;%1&quot;</translation>
</message>
<message>
<location filename="widgets/searchresultview.cpp" line="376"/>
<source>Find Usages in Project: &apos;%1&apos;</source>
<translation type="unfinished">&quot;%1&quot;</translation>
</message>
<message>
<source>References to symbol &apos;%1&apos; at &apos;%2&apos;:%3</source> <source>References to symbol &apos;%1&apos; at &apos;%2&apos;:%3</source>
<translation>&apos;%1&apos;&apos;%2&apos;: %3</translation> <translation type="vanished">&apos;%1&apos;&apos;%2&apos;: %3</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SearchResultTreeModel</name> <name>SearchResultTreeModel</name>
<message> <message>
<location filename="widgets/searchresultview.cpp" line="214"/> <location filename="widgets/searchresultview.cpp" line="216"/>
<source>Line</source> <source>Line</source>
<translation></translation> <translation></translation>
</message> </message>
@ -6163,8 +6172,8 @@ Are you really want to continue?</source>
<context> <context>
<name>SearchResultTreeViewDelegate</name> <name>SearchResultTreeViewDelegate</name>
<message> <message>
<location filename="widgets/searchresultview.cpp" line="419"/> <location filename="widgets/searchresultview.cpp" line="425"/>
<location filename="widgets/searchresultview.cpp" line="433"/> <location filename="widgets/searchresultview.cpp" line="439"/>
<source>Line</source> <source>Line</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -16,6 +16,8 @@ CppRefacter::CppRefacter(QObject *parent) : QObject(parent)
bool CppRefacter::findOccurence(Editor *editor, const BufferCoord &pos) bool CppRefacter::findOccurence(Editor *editor, const BufferCoord &pos)
{ {
if (!editor->parser())
return false;
if (!editor->parser()->freeze()) if (!editor->parser()->freeze())
return false; return false;
auto action = finally([&editor]{ auto action = finally([&editor]{
@ -35,38 +37,52 @@ bool CppRefacter::findOccurence(Editor *editor, const BufferCoord &pos)
std::shared_ptr<Project> project = pMainWindow->project(); std::shared_ptr<Project> project = pMainWindow->project();
if (editor->inProject() && project) { if (editor->inProject() && project) {
PSearchResults results = pMainWindow->searchResultModel()->addSearchResults( doFindOccurenceInProject(statement,project,editor->parser());
statement->fullName,
SearchFileScope::wholeProject
);
foreach (const PProjectUnit& unit, project->units()) {
if (isCfile(unit->fileName()) || isHfile(unit->fileName())) {
PSearchResultTreeItem item = findOccurenceInFile(
unit->fileName(),
statement,
editor->parser());
if (item && !(item->results.isEmpty())) {
results->results.append(item);
}
}
}
} else { } else {
PSearchResults results = pMainWindow->searchResultModel()->addSearchResults( doFindOccurenceInEditor(statement,editor,editor->parser());
statement->fullName,
SearchFileScope::currentFile
);
PSearchResultTreeItem item = findOccurenceInFile(
editor->filename(),
statement,
editor->parser());
if (item && !(item->results.isEmpty())) {
results->results.append(item);
}
} }
pMainWindow->searchResultModel()->notifySearchResultsUpdated(); pMainWindow->searchResultModel()->notifySearchResultsUpdated();
return true; return true;
} }
bool CppRefacter::findOccurence(const QString &statementFullname, SearchFileScope scope)
{
PCppParser parser;
Editor * editor;
std::shared_ptr<Project> project;
if (scope == SearchFileScope::currentFile) {
editor = pMainWindow->editorList()->getEditor();
if (!editor)
return false;
parser = editor->parser();
} else if (scope == SearchFileScope::wholeProject) {
project = pMainWindow->project();
if (!project)
return false;
parser = project->cppParser();
}
if (!parser)
return false;
{
parser->freeze();
auto action = finally([&parser]{
parser->unFreeze();
});
PStatement statement = parser->findStatement(statementFullname);
// definition of the symbol not found
if (!statement)
return false;
if (scope == SearchFileScope::wholeProject) {
doFindOccurenceInProject(statement,project,parser);
} else if (scope == SearchFileScope::currentFile) {
doFindOccurenceInEditor(statement, editor,parser);
}
pMainWindow->searchResultModel()->notifySearchResultsUpdated();
return true;
}
}
static QString fullParentName(PStatement statement) { static QString fullParentName(PStatement statement) {
PStatement parent = statement->parentScope.lock(); PStatement parent = statement->parentScope.lock();
if (parent) { if (parent) {
@ -117,6 +133,42 @@ void CppRefacter::renameSymbol(Editor *editor, const BufferCoord &pos, const QSt
renameSymbolInFile(editor->filename(),oldStatement,newWord, editor->parser()); renameSymbolInFile(editor->filename(),oldStatement,newWord, editor->parser());
} }
void CppRefacter::doFindOccurenceInEditor(PStatement statement , Editor *editor, const PCppParser &parser)
{
PSearchResults results = pMainWindow->searchResultModel()->addSearchResults(
statement->command,
statement->fullName,
SearchFileScope::currentFile
);
PSearchResultTreeItem item = findOccurenceInFile(
editor->filename(),
statement,
parser);
if (item && !(item->results.isEmpty())) {
results->results.append(item);
}
}
void CppRefacter::doFindOccurenceInProject(PStatement statement, std::shared_ptr<Project> project, const PCppParser &parser)
{
PSearchResults results = pMainWindow->searchResultModel()->addSearchResults(
statement->command,
statement->fullName,
SearchFileScope::wholeProject
);
foreach (const PProjectUnit& unit, project->units()) {
if (isCfile(unit->fileName()) || isHfile(unit->fileName())) {
PSearchResultTreeItem item = findOccurenceInFile(
unit->fileName(),
statement,
parser);
if (item && !(item->results.isEmpty())) {
results->results.append(item);
}
}
}
}
PSearchResultTreeItem CppRefacter::findOccurenceInFile( PSearchResultTreeItem CppRefacter::findOccurenceInFile(
const QString &filename, const QString &filename,
const PStatement &statement, const PStatement &statement,

View File

@ -8,6 +8,7 @@
class Editor; class Editor;
class BufferCoord; class BufferCoord;
class Project;
class CppRefacter : public QObject class CppRefacter : public QObject
{ {
Q_OBJECT Q_OBJECT
@ -15,10 +16,13 @@ public:
explicit CppRefacter(QObject *parent = nullptr); explicit CppRefacter(QObject *parent = nullptr);
bool findOccurence(Editor * editor, const BufferCoord& pos); bool findOccurence(Editor * editor, const BufferCoord& pos);
bool findOccurence(const QString& statementFullname, SearchFileScope scope);
void renameSymbol(Editor* editor, const BufferCoord& pos, const QString& word, const QString& newWord); void renameSymbol(Editor* editor, const BufferCoord& pos, const QString& word, const QString& newWord);
signals: signals:
private: private:
void doFindOccurenceInEditor(PStatement statement, Editor* editor, const PCppParser& parser);
void doFindOccurenceInProject(PStatement statement, std::shared_ptr<Project> project, const PCppParser& parser);
PSearchResultTreeItem findOccurenceInFile( PSearchResultTreeItem findOccurenceInFile(
const QString& filename, const QString& filename,
const PStatement& statement, const PStatement& statement,

View File

@ -4087,23 +4087,28 @@ void MainWindow::on_cbSearchHistory_currentIndexChanged(int index)
{ {
mSearchResultModel.setCurrentIndex(index); mSearchResultModel.setCurrentIndex(index);
PSearchResults results = mSearchResultModel.results(index); PSearchResults results = mSearchResultModel.results(index);
if (results && results->searchType == SearchType::Search) { if (results) {
ui->btnSearchAgin->setEnabled(true); ui->btnSearchAgain->setEnabled(true);
} else { } else {
ui->btnSearchAgin->setEnabled(false); ui->btnSearchAgain->setEnabled(false);
} }
} }
void MainWindow::on_btnSearchAgin_clicked() void MainWindow::on_btnSearchAgain_clicked()
{ {
if (mSearchDialog==nullptr) { if (mSearchDialog==nullptr) {
mSearchDialog = new SearchDialog(this); mSearchDialog = new SearchDialog(this);
} }
PSearchResults results=mSearchResultModel.currentResults(); PSearchResults results=mSearchResultModel.currentResults();
if (results){ if (!results)
return;
if (results->searchType == SearchType::Search){
mSearchDialog->findInFiles(results->keyword, mSearchDialog->findInFiles(results->keyword,
results->scope, results->scope,
results->options); results->options);
} else if (results->searchType == SearchType::FindOccurences) {
CppRefacter refactor;
refactor.findOccurence(results->statementFullname,results->scope);
} }
} }

View File

@ -332,7 +332,7 @@ private slots:
void on_cbSearchHistory_currentIndexChanged(int index); void on_cbSearchHistory_currentIndexChanged(int index);
void on_btnSearchAgin_clicked(); void on_btnSearchAgain_clicked();
void on_actionRemove_Watch_triggered(); void on_actionRemove_Watch_triggered();
void on_actionRemove_All_Watches_triggered(); void on_actionRemove_All_Watches_triggered();

View File

@ -497,7 +497,7 @@
<enum>QTabWidget::South</enum> <enum>QTabWidget::South</enum>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>6</number> <number>3</number>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -932,7 +932,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnSearchAgin"> <widget class="QPushButton" name="btnSearchAgain">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>

View File

@ -213,8 +213,37 @@ PStatementList CppParser::findNamespace(const QString &name)
return mNamespaces.value(name,PStatementList()); return mNamespaces.value(name,PStatementList());
} }
PStatement CppParser::findStatement(const QString &fullname)
{
QMutexLocker locker(&mMutex);
if (fullname.isEmpty())
return PStatement();
QStringList phrases = fullname.split("::");
if (phrases.isEmpty())
return PStatement();
PStatement parentStatement;
PStatement statement;
foreach (const QString& phrase, phrases) {
if (parentStatement && parentStatement->kind == StatementKind::skNamespace) {
PStatementList lst = findNamespace(parentStatement->fullName);
foreach (const PStatement& namespaceStatement, *lst) {
statement = findMemberOfStatement(phrase,namespaceStatement);
if (statement)
break;
}
} else {
statement = findMemberOfStatement(phrase,parentStatement);
}
if (!statement)
return PStatement();
parentStatement = statement;
}
return statement;
}
PStatement CppParser::findStatementOf(const QString &fileName, const QString &phrase, int line) PStatement CppParser::findStatementOf(const QString &fileName, const QString &phrase, int line)
{ {
QMutexLocker locker(&mMutex);
return findStatementOf(fileName,phrase,findAndScanBlockAt(fileName,line)); return findStatementOf(fileName,phrase,findAndScanBlockAt(fileName,line));
} }

View File

@ -36,6 +36,7 @@ public:
int line); int line);
int findLastOperator(const QString& phrase) const; int findLastOperator(const QString& phrase) const;
PStatementList findNamespace(const QString& name); // return a list of PSTATEMENTS (of the namespace) PStatementList findNamespace(const QString& name); // return a list of PSTATEMENTS (of the namespace)
PStatement findStatement(const QString& fullname);
PStatement findStatementOf(const QString& fileName, PStatement findStatementOf(const QString& fileName,
const QString& phrase, const QString& phrase,
int line); int line);

View File

@ -2259,6 +2259,11 @@ static void setReleaseOptions(Settings::PCompilerSet pSet) {
pSet->setOption(pOption,'1'); pSet->setOption(pOption,'1');
} }
pOption = pSet->findOption("-pipe");
if (pOption) {
pSet->setOption(pOption,'1');
}
// pOption = pSet->findOption("-static"); // pOption = pSet->findOption("-static");
// if (pOption) { // if (pOption) {
// pSet->setOption(pOption,'1'); // pSet->setOption(pOption,'1');
@ -2279,6 +2284,11 @@ static void setDebugOptions(Settings::PCompilerSet pSet) {
if (pOption) { if (pOption) {
pSet->setOption(pOption,'1'); pSet->setOption(pOption,'1');
} }
pOption = pSet->findOption("-pipe");
if (pOption) {
pSet->setOption(pOption,'1');
}
// pOption = pSet->findOption("-static"); // pOption = pSet->findOption("-static");
// if (pOption) { // if (pOption) {
// pSet->setOption(pOption,'1'); // pSet->setOption(pOption,'1');
@ -2292,6 +2302,11 @@ static void setProfileOptions(Settings::PCompilerSet pSet) {
pSet->setOption(pOption,'1'); pSet->setOption(pOption,'1');
} }
pOption = pSet->findOption("-pipe");
if (pOption) {
pSet->setOption(pOption,'1');
}
// pOption = pSet->findOption("-static"); // pOption = pSet->findOption("-static");
// if (pOption) { // if (pOption) {
// pSet->setOption(pOption,'1'); // pSet->setOption(pOption,'1');

View File

@ -148,11 +148,23 @@ void SearchDialog::on_btnCancel_clicked()
this->close(); this->close();
} }
static void saveComboHistory(QComboBox* cb,const QString& text) {
QString s = text.trimmed();
if (s.isEmpty())
return;
int i = cb->findText(s);
if (i>=0) {
cb->removeItem(i);
}
cb->insertItem(0,s);
cb->setCurrentText(s);
}
void SearchDialog::on_btnExecute_clicked() void SearchDialog::on_btnExecute_clicked()
{ {
int findCount = 0; int findCount = 0;
ui->cbFind->addItem(ui->cbFind->currentText()); saveComboHistory(ui->cbFind,ui->cbFind->currentText());
ui->cbReplace->addItem(ui->cbReplace->currentText()); saveComboHistory(ui->cbReplace,ui->cbReplace->currentText());
SearchAction actionType; SearchAction actionType;
switch (mTabBar->currentIndex()) { switch (mTabBar->currentIndex()) {

View File

@ -32,6 +32,7 @@ PSearchResults SearchResultModel::addSearchResults(const QString &keyword, SynSe
} }
PSearchResults SearchResultModel::addSearchResults( PSearchResults SearchResultModel::addSearchResults(
const QString& keyword,
const QString& symbolFullname, const QString& symbolFullname,
SearchFileScope scope) SearchFileScope scope)
{ {
@ -40,7 +41,7 @@ PSearchResults SearchResultModel::addSearchResults(
PSearchResults results = mSearchResults[i]; PSearchResults results = mSearchResults[i];
if (results->searchType == SearchType::FindOccurences if (results->searchType == SearchType::FindOccurences
&& results->scope == scope && results->scope == scope
&& results->keyword == symbolFullname && results->statementFullname == symbolFullname
) { ) {
index=i; index=i;
break; break;
@ -53,7 +54,8 @@ PSearchResults SearchResultModel::addSearchResults(
mSearchResults.pop_back(); mSearchResults.pop_back();
} }
PSearchResults results = std::make_shared<SearchResults>(); PSearchResults results = std::make_shared<SearchResults>();
results->keyword = symbolFullname; results->keyword = keyword;
results->statementFullname = symbolFullname;
results->filename = ""; results->filename = "";
results->searchType = SearchType::FindOccurences; results->searchType = SearchType::FindOccurences;
results->scope = scope; results->scope = scope;
@ -320,22 +322,22 @@ bool SearchResultTreeModel::selectable() const
void SearchResultTreeModel::setSelectable(bool newSelectable) void SearchResultTreeModel::setSelectable(bool newSelectable)
{ {
if (newSelectable!=mSelectable) { if (newSelectable!=mSelectable) {
beginResetModel();
mSelectable = newSelectable; mSelectable = newSelectable;
if (mSelectable) { }
//select all items by default beginResetModel();
PSearchResults results = mSearchResultModel->currentResults(); if (mSelectable) {
if (results) { //select all items by default
foreach (const PSearchResultTreeItem& file, results->results) { PSearchResults results = mSearchResultModel->currentResults();
file->selected = false; if (results) {
foreach (const PSearchResultTreeItem& item, file->results) { foreach (const PSearchResultTreeItem& file, results->results) {
item->selected = true; file->selected = false;
} foreach (const PSearchResultTreeItem& item, file->results) {
item->selected = true;
} }
} }
} }
endResetModel();
} }
endResetModel();
} }
SearchResultListModel::SearchResultListModel(SearchResultModel *model, QObject *parent): SearchResultListModel::SearchResultListModel(SearchResultModel *model, QObject *parent):

View File

@ -32,6 +32,7 @@ struct SearchResultTreeItem {
struct SearchResults{ struct SearchResults{
SynSearchOptions options; SynSearchOptions options;
QString keyword; QString keyword;
QString statementFullname;
SearchFileScope scope; SearchFileScope scope;
SearchType searchType; SearchType searchType;
QString filename; QString filename;
@ -47,6 +48,7 @@ public:
PSearchResults addSearchResults(const QString& keyword,SynSearchOptions options, PSearchResults addSearchResults(const QString& keyword,SynSearchOptions options,
SearchFileScope scope); SearchFileScope scope);
PSearchResults addSearchResults( PSearchResults addSearchResults(
const QString& keyword,
const QString& symbolFullname, const QString& symbolFullname,
SearchFileScope scope); SearchFileScope scope);
PSearchResults results(int index); PSearchResults results(int index);

638
installer/devcpp-i686.nsi Normal file
View File

@ -0,0 +1,638 @@
####################################################################
# Startup
!define COMPILERNAME "MinGW-w64 GCC 10.3 "
!define COMPILERFOLDER "MinGW32"
!define DEVCPP_VERSION "6.7.5"
!define FINALNAME "Dev-Cpp.${DEVCPP_VERSION}.${COMPILERNAME}.Setup.exe"
!define DISPLAY_NAME "Red Panda Dev-C++ ${DEVCPP_VERSION}"
!include "MUI2.nsh"
!include "lang.nsh"
!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
####################################################################
# Installer Attributes
Name "${DISPLAY_NAME}"
OutFile "${FINALNAME}"
Caption "${DISPLAY_NAME}"
LicenseData "LICENSE"
InstallDir $PROGRAMFILES\Dev-Cpp
####################################################################
# Interface Settings
ShowInstDetails show
AutoCloseWindow false
SilentInstall normal
CRCCheck on
SetCompressor /SOLID /FINAL lzma
SetCompressorDictSize 64
SetDatablockOptimize on
SetOverwrite try
XPStyle on
InstType "Full";1
InstType "Minimal";2
InstType "Safe";3
## Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\Dev-C++"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
####################################################################
# Pages
!define MUI_ICON "devcpp.ico"
!define MUI_UNICON "devcpp.ico"
!define MUI_ABORTWARNING
!define MUI_LANGDLL_ALLLANGUAGES
!define MUI_FINISHPAGE_RUN "$INSTDIR\devcpp.exe"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_COMPONENTSPAGE_SMALLDESC
!insertmacro MUI_PAGE_LICENSE "LICENSE"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
####################################################################
# Languages
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Bulgarian"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Croatian"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Estonian"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Latvian"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "Romanian"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Slovenian"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Ukrainian"
####################################################################
# Files, by option section
Section "$(SectionMainName)" SectionMain
SectionIn 1 2 3 RO
SetOutPath $INSTDIR
; Allways create an uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "DisplayName" "Dev-C++"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "DisplayVersion" "${DEVCPP_VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "DisplayIcon" "$INSTDIR\devcpp.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "Publisher" "Roy Qu(royqh1979@gmail.com)"
; HDPI Fix
WriteRegStr HKCU "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\devcpp.exe" "~ HIGHDPIAWARE"
; Write required files
File "devcpp.exe"
File "packman.exe"
File "PackMaker.exe"
File "ConsolePauser.exe"
File "devcpp.exe.manifest"
File "LICENSE"
File "NEWS.txt"
File "README.MD"
; Write required paths
SetOutPath $INSTDIR\Lang
File /nonfatal /r "Lang\English.*"
SetOutPath $INSTDIR\Templates
File /nonfatal /r "Templates\*"
SetOutPath $INSTDIR\Help
File /nonfatal /r "Help\*"
SetOutPath $INSTDIR\AStyle
File /nonfatal /r "AStyle\*"
SetOutPath $INSTDIR\ResEd
File /nonfatal /r "ResEd\*"
SetOutPath $INSTDIR\Contributes
File /nonfatal /r "contributes\*"
SectionEnd
Section "$(SectionMinGWName)" SectionMinGW
SectionIn 1 3
SetOutPath $INSTDIR\MinGW32
File /nonfatal /r "${COMPILERFOLDER}\*"
SectionEnd
Section "$(SectionIconsName)" SectionIcons
SectionIn 1 3
SetOutPath $INSTDIR\Icons
File /nonfatal /r "Icons\*.*"
SectionEnd
Section "$(SectionLangsName)" SectionLangs
SectionIn 1 3
SetOutPath $INSTDIR\Lang
File /nonfatal /r "Lang\*"
SectionEnd
####################################################################
# File association
SubSection "$(SectionAssocsName)" SectionAssocs
Section "$(SectionAssocExtNameBegin) .dev $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".dev"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".dev" "" "DevCpp.dev"
WriteRegStr HKCR "DevCpp.dev" "" "Dev-C++ Project File"
WriteRegStr HKCR "DevCpp.dev\DefaultIcon" "" '$0,3'
WriteRegStr HKCR "DevCpp.dev\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .c $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".c"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".c" "" "DevCpp.c"
WriteRegStr HKCR "DevCpp.c" "" "C Source File"
WriteRegStr HKCR "DevCpp.c\DefaultIcon" "" '$0,4'
WriteRegStr HKCR "DevCpp.c\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cpp $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cpp"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".cpp" "" "DevCpp.cpp"
WriteRegStr HKCR "DevCpp.cpp" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cpp\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cpp\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cxx $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cxx"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".cxx" "" "DevCpp.cxx"
WriteRegStr HKCR "DevCpp.cxx" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cxx\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cxx\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cc $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cc"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".cc" "" "DevCpp.cc"
WriteRegStr HKCR "DevCpp.cc" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cc\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cc\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .hxx $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".hxx"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".hxx" "" "DevCpp.hxx"
WriteRegStr HKCR "DevCpp.hxx" "" "C++ Header File"
WriteRegStr HKCR "DevCpp.hxx\DefaultIcon" "" '$0,7'
WriteRegStr HKCR "DevCpp.hxx\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .h $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".h"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".h" "" "DevCpp.h"
WriteRegStr HKCR "DevCpp.h" "" "C Header File"
WriteRegStr HKCR "DevCpp.h\DefaultIcon" "" '$0,6'
WriteRegStr HKCR "DevCpp.h\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .hpp $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".hpp"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".hpp" "" "DevCpp.hpp"
WriteRegStr HKCR "DevCpp.hpp" "" "C++ Header File"
WriteRegStr HKCR "DevCpp.hpp\DefaultIcon" "" '$0,7'
WriteRegStr HKCR "DevCpp.hpp\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .rc $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".rc"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".rc" "" "DevCpp.rc"
WriteRegStr HKCR "DevCpp.rc" "" "Resource Source File"
WriteRegStr HKCR "DevCpp.rc\DefaultIcon" "" '$0,8'
WriteRegStr HKCR "DevCpp.rc\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .devpak $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".devpak"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
StrCpy $1 $INSTDIR\PackMan.exe
WriteRegStr HKCR ".devpak" "" "DevCpp.devpak"
WriteRegStr HKCR "DevCpp.devpak" "" "Dev-C++ Package File"
WriteRegStr HKCR "DevCpp.devpak\DefaultIcon" "" '$0,9'
WriteRegStr HKCR "DevCpp.devpak\Shell\Open\Command" "" '$1 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .devpackage $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".devpackage"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
StrCpy $1 $INSTDIR\PackMan.exe
WriteRegStr HKCR ".devpackage" "" "DevCpp.devpackage"
WriteRegStr HKCR "DevCpp.devpackage" "" "Dev-C++ Package File"
WriteRegStr HKCR "DevCpp.devpackage\DefaultIcon" "" '$0,10'
WriteRegStr HKCR "DevCpp.devpackage\Shell\Open\Command" "" '$1 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .template $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".template"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".template" "" "DevCpp.template"
WriteRegStr HKCR "DevCpp.template" "" "Dev-C++ Template File"
WriteRegStr HKCR "DevCpp.template\DefaultIcon" "" '$0,1'
WriteRegStr HKCR "DevCpp.template\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
SubSectionEnd
####################################################################
# Shortcuts
SubSection "$(SectionShortcutsName)" SectionShortcuts
Section "$(SectionMenuLaunchName)" SectionMenuLaunch
SectionIn 1 3
; always use all user start menu, normal users can delete these
SetShellVarContext all
StrCpy $0 $SMPROGRAMS ; start menu Programs folder
CreateDirectory "$0\Dev-C++"
CreateShortCut "$0\Dev-C++\Red Panda Dev-C++.lnk" "$INSTDIR\devcpp.exe"
CreateShortCut "$0\Dev-C++\License.lnk" "$INSTDIR\LICENSE"
CreateShortCut "$0\Dev-C++\Uninstall Red Panda Dev-C++.lnk" "$INSTDIR\uninstall.exe"
SectionEnd
Section "$(SectionDesktopLaunchName)" SectionDesktopLaunch
SectionIn 1 3
; always use current user desktop, normal users can't delete all users' shortcuts
SetShellVarContext current
CreateShortCut "$DESKTOP\Red Panda Dev-C++.lnk" "$INSTDIR\devcpp.exe"
SectionEnd
SubSectionEnd
Section "$(SectionConfigName)" SectionConfig
SectionIn 3
RMDir /r "$APPDATA\Dev-Cpp"
Delete "$INSTDIR\devcpp.ini"
Delete "$INSTDIR\devcpp.cfg"
Delete "$INSTDIR\cache.ccc"
Delete "$INSTDIR\defaultcode.cfg"
Delete "$INSTDIR\devshortcuts.cfg"
Delete "$INSTDIR\classfolders.dcf"
Delete "$INSTDIR\mirrors.cfg"
Delete "$INSTDIR\tools.ini"
Delete "$INSTDIR\devcpp.ci"
SectionEnd
####################################################################
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SectionMain} "$(MessageSectionMain)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionMinGW} "$(MessageSectionMinGW)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionIcons} "$(MessageSectionIcons)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionLangs} "$(MessageSectionLangs)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionShortcuts} "$(MessageSectionShortcuts)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionAssocs} "$(MessageSectionAssocs)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionConfig} "$(MessageSectionConfig)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
####################################################################
# Functions, utilities
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
IfFileExists "C:\Dev-Cpp\devcpp.exe" 0 +2
SectionSetFlags ${SectionConfig} ${SF_SELECTED} # Remove old Dev-Cpp config files
IfFileExists "$APPDATA\Dev-Cpp\devcpp.cfg" 0 +2 # deprecated config file
SectionSetFlags ${SectionConfig} ${SF_SELECTED}
FunctionEnd
Function myGuiInit
; uninstall existing
Call UninstallExisting
FunctionEnd
;backup file association
Function BackupAssoc
;$0 is an extension - for example ".dev"
;check if backup already exists
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++\Backup" "$0"
;don't backup if backup exists in registry
StrCmp $1 "" 0 no_assoc
ReadRegStr $1 HKCR "$0" ""
;don't backup dev-cpp associations
StrCmp $1 "DevCpp$0" no_assoc
StrCmp $1 "" no_assoc
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++\Backup" "$0" "$1"
no_assoc:
FunctionEnd
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
FunctionEnd
;restore file association
Function un.RestoreAssoc
;$0 is an extension - for example ".dev"
DeleteRegKey HKCR "$0"
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++\Backup" "$0"
StrCmp $1 "" no_backup
WriteRegStr HKCR "$0" "" "$1"
Call un.RefreshShellIcons
no_backup:
FunctionEnd
;http://nsis.sourceforge.net/archive/viewpage.php?pageid=202
;After changing file associations, you can call this macro to refresh the shell immediatly.
;It calls the shell32 function SHChangeNotify. This will force windows to reload your changes from the registry.
!define SHCNE_ASSOCCHANGED 0x08000000
!define SHCNF_IDLIST 0
Function RefreshShellIcons
; By jerome tremblay - april 2003
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
FunctionEnd
Function un.RefreshShellIcons
; By jerome tremblay - april 2003
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
FunctionEnd
Function un.DeleteDirIfEmpty
FindFirst $R0 $R1 "$0\*.*"
strcmp $R1 "." 0 NoDelete
FindNext $R0 $R1
strcmp $R1 ".." 0 NoDelete
ClearErrors
FindNext $R0 $R1
IfErrors 0 NoDelete
FindClose $R0
Sleep 1000
RMDir "$0"
NoDelete:
FindClose $R0
FunctionEnd
Function GetParent
Exch $R0
Push $R1
Push $R2
Push $R3
StrCpy $R1 0
StrLen $R2 $R0
loop:
IntOp $R1 $R1 + 1
IntCmp $R1 $R2 get 0 get
StrCpy $R3 $R0 1 -$R1
StrCmp $R3 "\" get
Goto loop
get:
StrCpy $R0 $R0 -$R1
Pop $R3
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
Function UninstallExisting
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "UninstallString"
StrCmp $R0 "" done
Push $R0
Call GetParent
Pop $R1
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"$(MessageUninstallExisting)" \
IDOK uninst
Abort
;Run the uninstaller
uninst:
ClearErrors
HideWindow
ClearErrors
ExecWait '"$R0" _?=$R1'
BringToFront
done:
FunctionEnd
####################################################################
# uninstall
UninstallText "$(MessageUninstallText)"
ShowUninstDetails show
Section "Uninstall"
; Remove uninstaller
Delete "$INSTDIR\uninstall.exe"
; Remove start menu stuff, located in all users folder
SetShellVarContext all
Delete "$SMPROGRAMS\Dev-C++\Red Panda Dev-C++.lnk"
Delete "$SMPROGRAMS\Dev-C++\License.lnk"
Delete "$SMPROGRAMS\Dev-C++\Uninstall Red Panda Dev-C++.lnk"
RMDir "$SMPROGRAMS\Dev-C++"
; Remove desktop stuff, located in current user folder
SetShellVarContext current
Delete "$QUICKLAUNCH\Red Panda Dev-C++.lnk"
Delete "$DESKTOP\Red Panda Dev-C++.lnk"
; Restore file associations
StrCpy $0 ".dev"
Call un.RestoreAssoc
StrCpy $0 ".c"
Call un.RestoreAssoc
StrCpy $0 ".cpp"
Call un.RestoreAssoc
StrCpy $0 ".h"
Call un.RestoreAssoc
StrCpy $0 ".hpp"
Call un.RestoreAssoc
StrCpy $0 ".rc"
Call un.RestoreAssoc
StrCpy $0 ".devpak"
Call un.RestoreAssoc
StrCpy $0 ".devpackage"
Call un.RestoreAssoc
StrCpy $0 ".template"
Call un.RestoreAssoc
DeleteRegKey HKCR "DevCpp.dev"
DeleteRegKey HKCR "DevCpp.c"
DeleteRegKey HKCR "DevCpp.cpp"
DeleteRegKey HKCR "DevCpp.cxx"
DeleteRegKey HKCR "DevCpp.cc"
DeleteRegKey HKCR "DevCpp.h"
DeleteRegKey HKCR "DevCpp.hpp"
DeleteRegKey HKCR "DevCpp.hxx"
DeleteRegKey HKCR "DevCpp.rc"
DeleteRegKey HKCR "DevCpp.devpak"
DeleteRegKey HKCR "DevCpp.devpackage"
DeleteRegKey HKCR "DevCpp.template"
Delete "$INSTDIR\Packman.map"
Delete "$INSTDIR\Packman.exe"
Delete "$INSTDIR\PackMaker.exe"
Delete "$INSTDIR\NEWS.txt"
Delete "$INSTDIR\devcpp.map"
Delete "$INSTDIR\devcpp.exe"
Delete "$INSTDIR\devcpp.exe.manifest"
Delete "$INSTDIR\devcppPortable.exe"
Delete "$INSTDIR\ConsolePauser.exe"
Delete "$INSTDIR\LICENSE"
Delete "$INSTDIR\README.MD"
RMDir /r "$INSTDIR\Lang"
RMDir /r "$INSTDIR\Examples"
RMDir /r "$INSTDIR\Help"
RMDir /r "$INSTDIR\Icons"
RMDir /r "$INSTDIR\Packages"
RMDir /r "$INSTDIR\Templates"
RMDir /r "$INSTDIR\Astyle"
RMDir /r "$INSTDIR\ResEd"
RMDir /r "$INSTDIR\Contributes"
RMDir /r "$INSTDIR\MinGW32"
RMDir /r "$INSTDIR\MinGW64"
StrCpy $0 "$INSTDIR"
Call un.DeleteDirIfEmpty
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++"
DeleteRegKey HKCU "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\$INSTDIR\devcpp.exe"
DeleteRegKey HKCU "Software\Dev-C++"
IfSilent +2 ; Don't ask when running in silent mode
MessageBox MB_YESNO "$(MessageRemoveConfig)" IDNO Done
RMDir /r "$APPDATA\Dev-Cpp"
Delete "$INSTDIR\devcpp.ini"
Delete "$INSTDIR\devcpp.cfg"
Delete "$INSTDIR\cache.ccc"
Delete "$INSTDIR\defaultcode.cfg"
Delete "$INSTDIR\devshortcuts.cfg"
Delete "$INSTDIR\classfolders.dcf"
Delete "$INSTDIR\mirrors.cfg"
Delete "$INSTDIR\tools.ini"
Delete "$INSTDIR\devcpp.ci"
Done:
SectionEnd

516
installer/devcpp-x64.nsi Normal file
View File

@ -0,0 +1,516 @@
####################################################################
# Startup
!define COMPILERNAME "MinGW-w64 X86_64 GCC 11.2"
!define COMPILERFOLDER "MinGW64"
!define DEVCPP_VERSION "0.8.0.beta"
!define FINALNAME "RedPanda-Cpp.7.${DEVCPP_VERSION}.${COMPILERNAME}.Setup.exe"
!define DISPLAY_NAME "Red Panda Dev-C++ 7 ${DEVCPP_VERSION}"
!include "MUI2.nsh"
!include "lang.nsh"
!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
####################################################################
# Installer Attributes
Name "${DISPLAY_NAME}"
OutFile "${FINALNAME}"
Caption "${DISPLAY_NAME}"
LicenseData "LICENSE"
InstallDir $PROGRAMFILES\RedPanda-Cpp
####################################################################
# Interface Settings
ShowInstDetails show
AutoCloseWindow false
SilentInstall normal
CRCCheck on
SetCompressor /SOLID /FINAL lzma
SetCompressorDictSize 64
SetDatablockOptimize on
SetOverwrite try
XPStyle on
InstType "Full";1
InstType "Minimal";2
InstType "Safe";3
## Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\RedPanda-C++"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
####################################################################
# Pages
!define MUI_ICON "devcpp.ico"
!define MUI_UNICON "devcpp.ico"
!define MUI_ABORTWARNING
!define MUI_LANGDLL_ALLLANGUAGES
!define MUI_FINISHPAGE_RUN "$INSTDIR\RedPandaIDE.exe"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_COMPONENTSPAGE_SMALLDESC
!insertmacro MUI_PAGE_LICENSE "LICENSE"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
####################################################################
# Languages
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Bulgarian"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Croatian"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Estonian"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Latvian"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "Romanian"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Slovenian"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Ukrainian"
####################################################################
# Files, by option section
Section "$(SectionMainName)" SectionMain
SectionIn 1 2 3 RO
SetOutPath $INSTDIR
; Allways create an uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++" "DisplayName" "Redpanda-C++"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++" "DisplayVersion" "${DEVCPP_VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++" "DisplayIcon" "$INSTDIR\RedPandaIDE.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++" "Publisher" "Roy Qu(royqh1979@gmail.com)"
; Write required files
File "RedPandaIDE.exe"
File "ConsolePauser.exe"
File "astyle.exe"
File "LICENSE"
File "NEWS.md"
File "README.md"
; Write required paths
SetOutPath $INSTDIR\Templates
File /nonfatal /r "Templates\*"
SetOutPath $INSTDIR\Icons
File /nonfatal /r "Icons\*"
SectionEnd
Section "$(SectionMinGWName)" SectionMinGW
SectionIn 1 3
SetOutPath $INSTDIR\MinGW64
File /nonfatal /r "${COMPILERFOLDER}\*"
SectionEnd
Section "$(SectionIconsName)" SectionIcons
SectionIn 1 3
SetOutPath $INSTDIR\Icons
File /nonfatal /r "Icons\*.*"
SectionEnd
####################################################################
# File association
SubSection "$(SectionAssocsName)" SectionAssocs
Section "$(SectionAssocExtNameBegin) .dev $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".dev"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".dev" "" "DevCpp.dev"
WriteRegStr HKCR "DevCpp.dev" "" "Dev-C++ Project File"
WriteRegStr HKCR "DevCpp.dev\DefaultIcon" "" '$0,3'
WriteRegStr HKCR "DevCpp.dev\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .c $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".c"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".c" "" "DevCpp.c"
WriteRegStr HKCR "DevCpp.c" "" "C Source File"
WriteRegStr HKCR "DevCpp.c\DefaultIcon" "" '$0,4'
WriteRegStr HKCR "DevCpp.c\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cpp $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cpp"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".cpp" "" "DevCpp.cpp"
WriteRegStr HKCR "DevCpp.cpp" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cpp\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cpp\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cxx $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cxx"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".cxx" "" "DevCpp.cxx"
WriteRegStr HKCR "DevCpp.cxx" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cxx\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cxx\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cc $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cc"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".cc" "" "DevCpp.cc"
WriteRegStr HKCR "DevCpp.cc" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cc\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cc\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .hxx $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".hxx"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".hxx" "" "DevCpp.hxx"
WriteRegStr HKCR "DevCpp.hxx" "" "C++ Header File"
WriteRegStr HKCR "DevCpp.hxx\DefaultIcon" "" '$0,7'
WriteRegStr HKCR "DevCpp.hxx\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .h $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".h"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".h" "" "DevCpp.h"
WriteRegStr HKCR "DevCpp.h" "" "C Header File"
WriteRegStr HKCR "DevCpp.h\DefaultIcon" "" '$0,6'
WriteRegStr HKCR "DevCpp.h\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .hpp $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".hpp"
Call BackupAssoc
StrCpy $0 $INSTDIR\RedPandaIDE.exe
WriteRegStr HKCR ".hpp" "" "DevCpp.hpp"
WriteRegStr HKCR "DevCpp.hpp" "" "C++ Header File"
WriteRegStr HKCR "DevCpp.hpp\DefaultIcon" "" '$0,7'
WriteRegStr HKCR "DevCpp.hpp\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
SubSectionEnd
####################################################################
# Shortcuts
SubSection "$(SectionShortcutsName)" SectionShortcuts
Section "$(SectionMenuLaunchName)" SectionMenuLaunch
SectionIn 1 3
; always use all user start menu, normal users can delete these
SetShellVarContext all
StrCpy $0 $SMPROGRAMS ; start menu Programs folder
CreateDirectory "$0\Dev-C++"
CreateShortCut "$0\Dev-C++\Red Panda Dev-C++.lnk" "$INSTDIR\RedPandaIDE.exe"
CreateShortCut "$0\Dev-C++\License.lnk" "$INSTDIR\LICENSE"
CreateShortCut "$0\Dev-C++\Uninstall Red Panda Dev-C++.lnk" "$INSTDIR\uninstall.exe"
SectionEnd
Section "$(SectionDesktopLaunchName)" SectionDesktopLaunch
SectionIn 1 3
; always use current user desktop, normal users can't delete all users' shortcuts
SetShellVarContext current
CreateShortCut "$DESKTOP\Red Panda Dev-C++.lnk" "$INSTDIR\RedPandaIDE.exe"
SectionEnd
SubSectionEnd
Section "$(SectionConfigName)" SectionConfig
SectionIn 3
RMDir /r "$APPDATA\RedPanda-C++"
SectionEnd
####################################################################
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SectionMain} "$(MessageSectionMain)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionMinGW} "$(MessageSectionMinGW)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionIcons} "$(MessageSectionIcons)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionShortcuts} "$(MessageSectionShortcuts)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionAssocs} "$(MessageSectionAssocs)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionConfig} "$(MessageSectionConfig)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
####################################################################
# Functions, utilities
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
IfFileExists "C:\Dev-Cpp\devcpp.exe" 0 +2
SectionSetFlags ${SectionConfig} ${SF_SELECTED} # Remove old Dev-Cpp config files
IfFileExists "$APPDATA\Dev-Cpp\devcpp.cfg" 0 +2 # deprecated config file
SectionSetFlags ${SectionConfig} ${SF_SELECTED}
FunctionEnd
Function myGuiInit
; uninstall existing
Call UninstallExisting
FunctionEnd
;backup file association
Function BackupAssoc
;$0 is an extension - for example ".dev"
;check if backup already exists
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++\Backup" "$0"
;don't backup if backup exists in registry
StrCmp $1 "" 0 no_assoc
ReadRegStr $1 HKCR "$0" ""
;don't backup dev-cpp associations
StrCmp $1 "DevCpp$0" no_assoc
StrCmp $1 "" no_assoc
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++\Backup" "$0" "$1"
no_assoc:
FunctionEnd
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
FunctionEnd
;restore file association
Function un.RestoreAssoc
;$0 is an extension - for example ".dev"
DeleteRegKey HKCR "$0"
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++\Backup" "$0"
StrCmp $1 "" no_backup
WriteRegStr HKCR "$0" "" "$1"
Call un.RefreshShellIcons
no_backup:
FunctionEnd
;http://nsis.sourceforge.net/archive/viewpage.php?pageid=202
;After changing file associations, you can call this macro to refresh the shell immediatly.
;It calls the shell32 function SHChangeNotify. This will force windows to reload your changes from the registry.
!define SHCNE_ASSOCCHANGED 0x08000000
!define SHCNF_IDLIST 0
Function RefreshShellIcons
; By jerome tremblay - april 2003
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
FunctionEnd
Function un.RefreshShellIcons
; By jerome tremblay - april 2003
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
FunctionEnd
Function un.DeleteDirIfEmpty
FindFirst $R0 $R1 "$0\*.*"
strcmp $R1 "." 0 NoDelete
FindNext $R0 $R1
strcmp $R1 ".." 0 NoDelete
ClearErrors
FindNext $R0 $R1
IfErrors 0 NoDelete
FindClose $R0
Sleep 1000
RMDir "$0"
NoDelete:
FindClose $R0
FunctionEnd
Function GetParent
Exch $R0
Push $R1
Push $R2
Push $R3
StrCpy $R1 0
StrLen $R2 $R0
loop:
IntOp $R1 $R1 + 1
IntCmp $R1 $R2 get 0 get
StrCpy $R3 $R0 1 -$R1
StrCmp $R3 "\" get
Goto loop
get:
StrCpy $R0 $R0 -$R1
Pop $R3
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
Function UninstallExisting
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++" "UninstallString"
StrCmp $R0 "" done
Push $R0
Call GetParent
Pop $R1
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"$(MessageUninstallExisting)" \
IDOK uninst
Abort
;Run the uninstaller
uninst:
ClearErrors
HideWindow
ClearErrors
ExecWait '"$R0" _?=$R1'
BringToFront
done:
FunctionEnd
####################################################################
# uninstall
UninstallText "$(MessageUninstallText)"
ShowUninstDetails show
Section "Uninstall"
; Remove uninstaller
Delete "$INSTDIR\uninstall.exe"
; Remove start menu stuff, located in all users folder
SetShellVarContext all
Delete "$SMPROGRAMS\Dev-C++\Red Panda Dev-C++.lnk"
Delete "$SMPROGRAMS\Dev-C++\License.lnk"
Delete "$SMPROGRAMS\Dev-C++\Uninstall Red Panda Dev-C++.lnk"
RMDir "$SMPROGRAMS\Dev-C++"
; Remove desktop stuff, located in current user folder
SetShellVarContext current
Delete "$QUICKLAUNCH\Red Panda Dev-C++.lnk"
Delete "$DESKTOP\Red Panda Dev-C++.lnk"
; Restore file associations
StrCpy $0 ".dev"
Call un.RestoreAssoc
StrCpy $0 ".c"
Call un.RestoreAssoc
StrCpy $0 ".cpp"
Call un.RestoreAssoc
StrCpy $0 ".h"
Call un.RestoreAssoc
StrCpy $0 ".hpp"
Call un.RestoreAssoc
DeleteRegKey HKCR "DevCpp.dev"
DeleteRegKey HKCR "DevCpp.c"
DeleteRegKey HKCR "DevCpp.cpp"
DeleteRegKey HKCR "DevCpp.cxx"
DeleteRegKey HKCR "DevCpp.cc"
DeleteRegKey HKCR "DevCpp.h"
DeleteRegKey HKCR "DevCpp.hpp"
DeleteRegKey HKCR "DevCpp.hxx"
Delete "$INSTDIR\NEWS.md"
Delete "$INSTDIR\RedPandaIDE.exe"
Delete "$INSTDIR\ConsolePauser.exe"
Delete "$INSTDIR\astyle.exe"
Delete "$INSTDIR\LICENSE"
Delete "$INSTDIR\README.md"
RMDir /r "$INSTDIR\Lang"
RMDir /r "$INSTDIR\Icons"
RMDir /r "$INSTDIR\Templates"
RMDir /r "$INSTDIR\MinGW32"
RMDir /r "$INSTDIR\MinGW64"
StrCpy $0 "$INSTDIR"
Call un.DeleteDirIfEmpty
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RedPanda-C++"
DeleteRegKey HKCU "Software\RedPanda-C++"
IfSilent +2 ; Don't ask when running in silent mode
MessageBox MB_YESNO "$(MessageRemoveConfig)" IDNO Done
RMDir /r "$APPDATA\RedPanda-C++"
Done:
SectionEnd

View File

@ -0,0 +1,633 @@
####################################################################
# Startup
!define COMPILERNAME "No.Compiler"
!define COMPILERFOLDER ""
!define DEVCPP_VERSION "6.7.5"
!define FINALNAME "Dev-Cpp.${DEVCPP_VERSION}.${COMPILERNAME}.Setup.exe"
!define DISPLAY_NAME "Red Panda Dev-C++ ${DEVCPP_VERSION}"
!include "MUI2.nsh"
!include "lang.nsh"
!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
####################################################################
# Installer Attributes
Name "${DISPLAY_NAME}"
OutFile "${FINALNAME}"
Caption "${DISPLAY_NAME}"
LicenseData "LICENSE"
InstallDir $PROGRAMFILES\Dev-Cpp
####################################################################
# Interface Settings
ShowInstDetails show
AutoCloseWindow false
SilentInstall normal
CRCCheck on
SetCompressor /SOLID /FINAL lzma
SetCompressorDictSize 64
SetDatablockOptimize on
SetOverwrite try
XPStyle on
InstType "Full";1
InstType "Minimal";2
InstType "Safe";3
## Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\Dev-C++"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
####################################################################
# Pages
!define MUI_ICON "devcpp.ico"
!define MUI_UNICON "devcpp.ico"
!define MUI_ABORTWARNING
!define MUI_LANGDLL_ALLLANGUAGES
!define MUI_FINISHPAGE_RUN "$INSTDIR\devcpp.exe"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_COMPONENTSPAGE_SMALLDESC
!insertmacro MUI_PAGE_LICENSE "LICENSE"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
####################################################################
# Languages
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Bulgarian"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Croatian"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Estonian"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Hungarian"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Latvian"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "Romanian"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Slovenian"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Ukrainian"
####################################################################
# Files, by option section
Section "$(SectionMainName)" SectionMain
SectionIn 1 2 3 RO
SetOutPath $INSTDIR
; Allways create an uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "DisplayName" "Dev-C++"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "DisplayVersion" "${DEVCPP_VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "DisplayIcon" "$INSTDIR\devcpp.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "Publisher" "Bloodshed Software"
; HDPI Fix
WriteRegStr HKCU "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\devcpp.exe" "~ HIGHDPIAWARE"
; Write required files
File "devcpp.exe"
File "packman.exe"
File "PackMaker.exe"
File "ConsolePauser.exe"
File "devcpp.exe.manifest"
File "LICENSE"
File "NEWS.txt"
File "README.MD"
; Write required paths
SetOutPath $INSTDIR\Lang
File /nonfatal /r "Lang\English.*"
SetOutPath $INSTDIR\Templates
File /nonfatal /r "Templates\*"
SetOutPath $INSTDIR\Help
File /nonfatal /r "Help\*"
SetOutPath $INSTDIR\AStyle
File /nonfatal /r "AStyle\*"
SetOutPath $INSTDIR\ResEd
File /nonfatal /r "ResEd\*"
SetOutPath $INSTDIR\Contributes
File /nonfatal /r "contributes\*"
SectionEnd
Section "$(SectionIconsName)" SectionIcons
SectionIn 1 3
SetOutPath $INSTDIR\Icons
File /nonfatal /r "Icons\*.*"
SectionEnd
Section "$(SectionLangsName)" SectionLangs
SectionIn 1 3
SetOutPath $INSTDIR\Lang
File /nonfatal /r "Lang\*"
SectionEnd
####################################################################
# File association
SubSection "$(SectionAssocsName)" SectionAssocs
Section "$(SectionAssocExtNameBegin) .dev $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".dev"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".dev" "" "DevCpp.dev"
WriteRegStr HKCR "DevCpp.dev" "" "Dev-C++ Project File"
WriteRegStr HKCR "DevCpp.dev\DefaultIcon" "" '$0,3'
WriteRegStr HKCR "DevCpp.dev\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .c $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".c"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".c" "" "DevCpp.c"
WriteRegStr HKCR "DevCpp.c" "" "C Source File"
WriteRegStr HKCR "DevCpp.c\DefaultIcon" "" '$0,4'
WriteRegStr HKCR "DevCpp.c\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cpp $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cpp"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".cpp" "" "DevCpp.cpp"
WriteRegStr HKCR "DevCpp.cpp" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cpp\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cpp\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cxx $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cxx"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".cxx" "" "DevCpp.cxx"
WriteRegStr HKCR "DevCpp.cxx" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cxx\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cxx\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .cc $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".cc"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".cc" "" "DevCpp.cc"
WriteRegStr HKCR "DevCpp.cc" "" "C++ Source File"
WriteRegStr HKCR "DevCpp.cc\DefaultIcon" "" '$0,5'
WriteRegStr HKCR "DevCpp.cc\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .hxx $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".hxx"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".hxx" "" "DevCpp.hxx"
WriteRegStr HKCR "DevCpp.hxx" "" "C++ Header File"
WriteRegStr HKCR "DevCpp.hxx\DefaultIcon" "" '$0,7'
WriteRegStr HKCR "DevCpp.hxx\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .h $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".h"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".h" "" "DevCpp.h"
WriteRegStr HKCR "DevCpp.h" "" "C Header File"
WriteRegStr HKCR "DevCpp.h\DefaultIcon" "" '$0,6'
WriteRegStr HKCR "DevCpp.h\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .hpp $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".hpp"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".hpp" "" "DevCpp.hpp"
WriteRegStr HKCR "DevCpp.hpp" "" "C++ Header File"
WriteRegStr HKCR "DevCpp.hpp\DefaultIcon" "" '$0,7'
WriteRegStr HKCR "DevCpp.hpp\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .rc $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".rc"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".rc" "" "DevCpp.rc"
WriteRegStr HKCR "DevCpp.rc" "" "Resource Source File"
WriteRegStr HKCR "DevCpp.rc\DefaultIcon" "" '$0,8'
WriteRegStr HKCR "DevCpp.rc\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .devpak $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".devpak"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
StrCpy $1 $INSTDIR\PackMan.exe
WriteRegStr HKCR ".devpak" "" "DevCpp.devpak"
WriteRegStr HKCR "DevCpp.devpak" "" "Dev-C++ Package File"
WriteRegStr HKCR "DevCpp.devpak\DefaultIcon" "" '$0,9'
WriteRegStr HKCR "DevCpp.devpak\Shell\Open\Command" "" '$1 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .devpackage $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".devpackage"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
StrCpy $1 $INSTDIR\PackMan.exe
WriteRegStr HKCR ".devpackage" "" "DevCpp.devpackage"
WriteRegStr HKCR "DevCpp.devpackage" "" "Dev-C++ Package File"
WriteRegStr HKCR "DevCpp.devpackage\DefaultIcon" "" '$0,10'
WriteRegStr HKCR "DevCpp.devpackage\Shell\Open\Command" "" '$1 "%1"'
Call RefreshShellIcons
SectionEnd
Section "$(SectionAssocExtNameBegin) .template $(SectionAssocExtNameEnd)"
SectionIn 1 3
StrCpy $0 ".template"
Call BackupAssoc
StrCpy $0 $INSTDIR\DevCpp.exe
WriteRegStr HKCR ".template" "" "DevCpp.template"
WriteRegStr HKCR "DevCpp.template" "" "Dev-C++ Template File"
WriteRegStr HKCR "DevCpp.template\DefaultIcon" "" '$0,1'
WriteRegStr HKCR "DevCpp.template\Shell\Open\Command" "" '$0 "%1"'
Call RefreshShellIcons
SectionEnd
SubSectionEnd
####################################################################
# Shortcuts
SubSection "$(SectionShortcutsName)" SectionShortcuts
Section "$(SectionMenuLaunchName)" SectionMenuLaunch
SectionIn 1 3
; always use all user start menu, normal users can delete these
SetShellVarContext all
StrCpy $0 $SMPROGRAMS ; start menu Programs folder
CreateDirectory "$0\Dev-C++"
CreateShortCut "$0\Dev-C++\Red Panda Dev-C++.lnk" "$INSTDIR\devcpp.exe"
CreateShortCut "$0\Dev-C++\License.lnk" "$INSTDIR\LICENSE"
CreateShortCut "$0\Dev-C++\Uninstall Red Panda Dev-C++.lnk" "$INSTDIR\uninstall.exe"
SectionEnd
Section "$(SectionDesktopLaunchName)" SectionDesktopLaunch
SectionIn 1 3
; always use current user desktop, normal users can't delete all users' shortcuts
SetShellVarContext current
CreateShortCut "$DESKTOP\Red Panda Dev-C++.lnk" "$INSTDIR\devcpp.exe"
SectionEnd
SubSectionEnd
Section "$(SectionConfigName)" SectionConfig
SectionIn 3
RMDir /r "$APPDATA\Dev-Cpp"
Delete "$INSTDIR\devcpp.ini"
Delete "$INSTDIR\devcpp.cfg"
Delete "$INSTDIR\cache.ccc"
Delete "$INSTDIR\defaultcode.cfg"
Delete "$INSTDIR\devshortcuts.cfg"
Delete "$INSTDIR\classfolders.dcf"
Delete "$INSTDIR\mirrors.cfg"
Delete "$INSTDIR\tools.ini"
Delete "$INSTDIR\devcpp.ci"
SectionEnd
####################################################################
# TODO: Create language tables that describe installation components using LangString
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SectionMain} "$(MessageSectionMain)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionIcons} "$(MessageSectionIcons)"
#!insertmacro MUI_DESCRIPTION_TEXT ${SectionMinGW} "$(MessageSectionMinGW}"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionLangs} "$(MessageSectionLangs)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionAssocs} "$(MessageSectionAssocs)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionShortcuts} "$(MessageSectionShortcuts)"
!insertmacro MUI_DESCRIPTION_TEXT ${SectionConfig} "$(MessageSectionConfig)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
####################################################################
# Functions, utilities
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
IfFileExists "C:\Dev-Cpp\devcpp.exe" 0 +2
SectionSetFlags ${SectionConfig} ${SF_SELECTED} # Remove old Dev-Cpp config files
IfFileExists "$APPDATA\Dev-Cpp\devcpp.cfg" 0 +2 # deprecated config file
SectionSetFlags ${SectionConfig} ${SF_SELECTED}
FunctionEnd
Function myGuiInit
; uninstall existing
Call UninstallExisting
FunctionEnd
;backup file association
Function BackupAssoc
;$0 is an extension - for example ".dev"
;check if backup already exists
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++\Backup" "$0"
;don't backup if backup exists in registry
StrCmp $1 "" 0 no_assoc
ReadRegStr $1 HKCR "$0" ""
;don't backup dev-cpp associations
StrCmp $1 "DevCpp$0" no_assoc
StrCmp $1 "" no_assoc
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++\Backup" "$0" "$1"
no_assoc:
FunctionEnd
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
FunctionEnd
;restore file association
Function un.RestoreAssoc
;$0 is an extension - for example ".dev"
DeleteRegKey HKCR "$0"
ReadRegStr $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++\Backup" "$0"
StrCmp $1 "" no_backup
WriteRegStr HKCR "$0" "" "$1"
Call un.RefreshShellIcons
no_backup:
FunctionEnd
;http://nsis.sourceforge.net/archive/viewpage.php?pageid=202
;After changing file associations, you can call this macro to refresh the shell immediatly.
;It calls the shell32 function SHChangeNotify. This will force windows to reload your changes from the registry.
!define SHCNE_ASSOCCHANGED 0x08000000
!define SHCNF_IDLIST 0
Function RefreshShellIcons
; By jerome tremblay - april 2003
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
FunctionEnd
Function un.RefreshShellIcons
; By jerome tremblay - april 2003
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
FunctionEnd
Function un.DeleteDirIfEmpty
FindFirst $R0 $R1 "$0\*.*"
strcmp $R1 "." 0 NoDelete
FindNext $R0 $R1
strcmp $R1 ".." 0 NoDelete
ClearErrors
FindNext $R0 $R1
IfErrors 0 NoDelete
FindClose $R0
Sleep 1000
RMDir "$0"
NoDelete:
FindClose $R0
FunctionEnd
Function GetParent
Exch $R0
Push $R1
Push $R2
Push $R3
StrCpy $R1 0
StrLen $R2 $R0
loop:
IntOp $R1 $R1 + 1
IntCmp $R1 $R2 get 0 get
StrCpy $R3 $R0 1 -$R1
StrCmp $R3 "\" get
Goto loop
get:
StrCpy $R0 $R0 -$R1
Pop $R3
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
Function UninstallExisting
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++" "UninstallString"
StrCmp $R0 "" done
Push $R0
Call GetParent
Pop $R1
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"$(MessageUninstallExisting)" \
IDOK uninst
Abort
;Run the uninstaller
uninst:
ClearErrors
HideWindow
ClearErrors
ExecWait '"$R0" _?=$R1'
BringToFront
done:
FunctionEnd
####################################################################
# uninstall
UninstallText "$(MessageUninstallText)"
ShowUninstDetails show
Section "Uninstall"
; Remove uninstaller
Delete "$INSTDIR\uninstall.exe"
; Remove start menu stuff, located in all users folder
SetShellVarContext all
Delete "$SMPROGRAMS\Dev-C++\Red Panda Dev-C++.lnk"
Delete "$SMPROGRAMS\Dev-C++\License.lnk"
Delete "$SMPROGRAMS\Dev-C++\Uninstall Red Panda Dev-C++.lnk"
RMDir "$SMPROGRAMS\Dev-C++"
; Remove desktop stuff, located in current user folder
SetShellVarContext current
Delete "$QUICKLAUNCH\Red Panda Dev-C++.lnk"
Delete "$DESKTOP\Red Panda Dev-C++.lnk"
; Restore file associations
StrCpy $0 ".dev"
Call un.RestoreAssoc
StrCpy $0 ".c"
Call un.RestoreAssoc
StrCpy $0 ".cpp"
Call un.RestoreAssoc
StrCpy $0 ".h"
Call un.RestoreAssoc
StrCpy $0 ".hpp"
Call un.RestoreAssoc
StrCpy $0 ".rc"
Call un.RestoreAssoc
StrCpy $0 ".devpak"
Call un.RestoreAssoc
StrCpy $0 ".devpackage"
Call un.RestoreAssoc
StrCpy $0 ".template"
Call un.RestoreAssoc
DeleteRegKey HKCR "DevCpp.dev"
DeleteRegKey HKCR "DevCpp.c"
DeleteRegKey HKCR "DevCpp.cpp"
DeleteRegKey HKCR "DevCpp.cxx"
DeleteRegKey HKCR "DevCpp.cc"
DeleteRegKey HKCR "DevCpp.h"
DeleteRegKey HKCR "DevCpp.hpp"
DeleteRegKey HKCR "DevCpp.hxx"
DeleteRegKey HKCR "DevCpp.rc"
DeleteRegKey HKCR "DevCpp.devpak"
DeleteRegKey HKCR "DevCpp.devpackage"
DeleteRegKey HKCR "DevCpp.template"
Delete "$INSTDIR\Packman.map"
Delete "$INSTDIR\Packman.exe"
Delete "$INSTDIR\PackMaker.exe"
Delete "$INSTDIR\NEWS.txt"
Delete "$INSTDIR\devcpp.map"
Delete "$INSTDIR\devcpp.exe"
Delete "$INSTDIR\devcpp.exe.manifest"
Delete "$INSTDIR\devcppPortable.exe"
Delete "$INSTDIR\ConsolePauser.exe"
Delete "$INSTDIR\LICENSE"
Delete "$INSTDIR\README.MD"
RMDir /r "$INSTDIR\Lang"
RMDir /r "$INSTDIR\Examples"
RMDir /r "$INSTDIR\Help"
RMDir /r "$INSTDIR\Icons"
RMDir /r "$INSTDIR\Packages"
RMDir /r "$INSTDIR\Templates"
RMDir /r "$INSTDIR\Astyle"
RMDir /r "$INSTDIR\ResEd"
RMDir /r "$INSTDIR\Contributes"
RMDir /r "$INSTDIR\MinGW32"
RMDir /r "$INSTDIR\MinGW64"
StrCpy $0 "$INSTDIR"
Call un.DeleteDirIfEmpty
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Dev-C++"
DeleteRegKey HKCU "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\$INSTDIR\devcpp.exe"
DeleteRegKey HKCU "Software\Dev-C++"
IfSilent +2 ; Don't ask when running in silent mode
MessageBox MB_YESNO "$(MessageRemoveConfig)" IDNO Done
RMDir /r "$APPDATA\Dev-Cpp"
Delete "$INSTDIR\devcpp.ini"
Delete "$INSTDIR\devcpp.cfg"
Delete "$INSTDIR\cache.ccc"
Delete "$INSTDIR\defaultcode.cfg"
Delete "$INSTDIR\devshortcuts.cfg"
Delete "$INSTDIR\classfolders.dcf"
Delete "$INSTDIR\mirrors.cfg"
Delete "$INSTDIR\tools.ini"
Delete "$INSTDIR\devcpp.ci"
Done:
SectionEnd

620
installer/lang.nsh Normal file
View File

@ -0,0 +1,620 @@
/* English 1033 */
LangString MessageSectionMain 1033 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1033 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1033 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1033 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1033 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1033 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1033 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1033 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1033 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1033 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1033 "Program files (required)"
LangString SectionIconsName 1033 "Icon files"
LangString SectionLangsName 1033 "Language files"
LangString SectionMinGWName 1033 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1033 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1033 "Associate"
LangString SectionAssocExtNameEnd 1033 "files to Dev-C++"
LangString SectionShortcutsName 1033 "Shortcuts"
LangString SectionMenuLaunchName 1033 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1033 "Create Desktop shortcut"
LangString SectionConfigName 1033 "Remove old configuration files"
/* Simplified Chinese 2052 */
LangString MessageSectionMain 2052 "小熊猫Dev-C++ IDE (集成开发环境), 包管理器和项目模板"
LangString MessageSectionIcons 2052 "项目模板使用的图标文件"
LangString MessageSectionMinGW 2052 "${COMPILERNAME} 编译器和相关的工具、头文件和库"
LangString MessageSectionLangs 2052 "Dev-C++翻译文件"
LangString MessageSectionAssocs 2052 "使用Dev-C++打开这些文件"
LangString MessageSectionShortcuts 2052 "开始菜单和快捷方式"
LangString MessageSectionConfig 2052 "删除之前安装遗留的所有配置文件"
LangString MessageUninstallText 2052 "将要删除小熊猫Dev-C++, 是否继续?"
LangString MessageUninstallExisting 2052 "本机上已经安装了旧版本Dev-C++. $\n$\n点击'确定'以将其删除并继续,或者'取消'中止安装。"
LangString MessageRemoveConfig 2052 "你想要删除所有的配置文件吗?"
LangString SectionMainName 2052 "程序文件 (必须)"
LangString SectionIconsName 2052 "图标文件"
LangString SectionLangsName 2052 "语言文件"
LangString SectionMinGWName 2052 "${COMPILERNAME}编译器"
LangString SectionAssocsName 2052 "关联文件到Dev-C++"
LangString SectionAssocExtNameBegin 2052 "将"
LangString SectionAssocExtNameEnd 2052 "文件关联到Dev-C++"
LangString SectionShortcutsName 2052 "快捷方式"
LangString SectionMenuLaunchName 2052 "创建开始菜单程序项"
LangString SectionDesktopLaunchName 2052 "创建桌面快捷方式"
LangString SectionConfigName 2052 "删除原有配置文件"
/* Traditional Chinese 1028 */
LangString MessageSectionMain 1028 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1028 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1028 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1028 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1028 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1028 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1028 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1028 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1028 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1028 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1028 "Dev-C++ program files (required)"
LangString SectionIconsName 1028 "Icon files"
LangString SectionLangsName 1028 "Language files"
LangString SectionMinGWName 1028 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1028 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1028 "Associate"
LangString SectionAssocExtNameEnd 1028 "files to Dev-C++"
LangString SectionShortcutsName 1028 "Shortcuts"
LangString SectionMenuLaunchName 1028 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1028 "Create Desktop shortcut"
LangString SectionConfigName 1028 "Remove old configuration files"
/* Bulgarian 1026 */
LangString MessageSectionMain 1026 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1026 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1026 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1026 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1026 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1026 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1026 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1026 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1026 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1026 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1026 "Dev-C++ program files (required)"
LangString SectionIconsName 1026 "Icon files"
LangString SectionLangsName 1026 "Language files"
LangString SectionMinGWName 1026 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1026 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1026 "Associate"
LangString SectionAssocExtNameEnd 1026 "files to Dev-C++"
LangString SectionShortcutsName 1026 "Shortcuts"
LangString SectionMenuLaunchName 1026 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1026 "Create Desktop shortcut"
LangString SectionConfigName 1026 "Remove old configuration files"
/* Catalan 1027 */
LangString MessageSectionMain 1027 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1027 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1027 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1027 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1027 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1027 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1027 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1027 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1027 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1027 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1027 "Dev-C++ program files (required)"
LangString SectionIconsName 1027 "Icon files"
LangString SectionLangsName 1027 "Language files"
LangString SectionMinGWName 1027 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1027 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1027 "Associate"
LangString SectionAssocExtNameEnd 1027 "files to Dev-C++"
LangString SectionShortcutsName 1027 "Shortcuts"
LangString SectionMenuLaunchName 1027 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1027 "Create Desktop shortcut"
LangString SectionConfigName 1027 "Remove old configuration files"
/* Croatian 1050 */
LangString MessageSectionMain 1050 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1050 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1050 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1050 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1050 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1050 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1050 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1050 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1050 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1050 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1050 "Dev-C++ program files (required)"
LangString SectionIconsName 1050 "Icon files"
LangString SectionLangsName 1050 "Language files"
LangString SectionMinGWName 1050 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1050 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1050 "Associate"
LangString SectionAssocExtNameEnd 1050 "files to Dev-C++"
LangString SectionShortcutsName 1050 "Shortcuts"
LangString SectionMenuLaunchName 1050 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1050 "Create Desktop shortcut"
LangString SectionConfigName 1050 "Remove old configuration files"
/* Czech 1029 */
LangString MessageSectionMain 1029 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1029 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1029 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1029 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1029 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1029 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1029 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1029 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1029 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1029 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1029 "Dev-C++ program files (required)"
LangString SectionIconsName 1029 "Icon files"
LangString SectionLangsName 1029 "Language files"
LangString SectionMinGWName 1029 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1029 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1029 "Associate"
LangString SectionAssocExtNameEnd 1029 "files to Dev-C++"
LangString SectionShortcutsName 1029 "Shortcuts"
LangString SectionMenuLaunchName 1029 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1029 "Create Desktop shortcut"
LangString SectionConfigName 1029 "Remove old configuration files"
/* Danish 1030 */
LangString MessageSectionMain 1030 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1030 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1030 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1030 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1030 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1030 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1030 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1030 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1030 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1030 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1030 "Dev-C++ program files (required)"
LangString SectionIconsName 1030 "Icon files"
LangString SectionLangsName 1030 "Language files"
LangString SectionMinGWName 1030 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1030 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1030 "Associate"
LangString SectionAssocExtNameEnd 1030 "files to Dev-C++"
LangString SectionShortcutsName 1030 "Shortcuts"
LangString SectionMenuLaunchName 1030 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1030 "Create Desktop shortcut"
LangString SectionConfigName 1030 "Remove old configuration files"
/* Dutch 1043 */
LangString MessageSectionMain 1043 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1043 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1043 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1043 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1043 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1043 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1043 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1043 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1043 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1043 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1043 "Dev-C++ program files (required)"
LangString SectionIconsName 1043 "Icon files"
LangString SectionLangsName 1043 "Language files"
LangString SectionMinGWName 1043 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1043 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1043 "Associate"
LangString SectionAssocExtNameEnd 1043 "files to Dev-C++"
LangString SectionShortcutsName 1043 "Shortcuts"
LangString SectionMenuLaunchName 1043 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1043 "Create Desktop shortcut"
LangString SectionConfigName 1043 "Remove old configuration files"
/* Estonian 1061 */
LangString MessageSectionMain 1061 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1061 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1061 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1061 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1061 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1061 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1061 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1061 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1061 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1061 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1061 "Dev-C++ program files (required)"
LangString SectionIconsName 1061 "Icon files"
LangString SectionLangsName 1061 "Language files"
LangString SectionMinGWName 1061 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1061 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1061 "Associate"
LangString SectionAssocExtNameEnd 1061 "files to Dev-C++"
LangString SectionShortcutsName 1061 "Shortcuts"
LangString SectionMenuLaunchName 1061 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1061 "Create Desktop shortcut"
LangString SectionConfigName 1061 "Remove old configuration files"
/* French 1036 */
LangString MessageSectionMain 1036 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1036 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1036 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1036 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1036 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1036 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1036 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1036 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1036 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1036 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1036 "Dev-C++ program files (required)"
LangString SectionIconsName 1036 "Icon files"
LangString SectionLangsName 1036 "Language files"
LangString SectionMinGWName 1036 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1036 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1036 "Associate"
LangString SectionAssocExtNameEnd 1036 "files to Dev-C++"
LangString SectionShortcutsName 1036 "Shortcuts"
LangString SectionMenuLaunchName 1036 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1036 "Create Desktop shortcut"
LangString SectionConfigName 1036 "Remove old configuration files"
/* German 1031 */
LangString MessageSectionMain 1031 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1031 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1031 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1031 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1031 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1031 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1031 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1031 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1031 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1031 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1031 "Dev-C++ program files (required)"
LangString SectionIconsName 1031 "Icon files"
LangString SectionLangsName 1031 "Language files"
LangString SectionMinGWName 1031 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1031 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1031 "Associate"
LangString SectionAssocExtNameEnd 1031 "files to Dev-C++"
LangString SectionShortcutsName 1031 "Shortcuts"
LangString SectionMenuLaunchName 1031 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1031 "Create Desktop shortcut"
LangString SectionConfigName 1031 "Remove old configuration files"
/* Greek 1032 */
LangString MessageSectionMain 1032 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1032 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1032 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1032 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1032 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1032 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1032 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1032 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1032 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1032 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1032 "Dev-C++ program files (required)"
LangString SectionIconsName 1032 "Icon files"
LangString SectionLangsName 1032 "Language files"
LangString SectionMinGWName 1032 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1032 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1032 "Associate"
LangString SectionAssocExtNameEnd 1032 "files to Dev-C++"
LangString SectionShortcutsName 1032 "Shortcuts"
LangString SectionMenuLaunchName 1032 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1032 "Create Desktop shortcut"
LangString SectionConfigName 1032 "Remove old configuration files"
/* Hungarian 1038 */
LangString MessageSectionMain 1038 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1038 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1038 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1038 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1038 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1038 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1038 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1038 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1038 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1038 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1038 "Dev-C++ program files (required)"
LangString SectionIconsName 1038 "Icon files"
LangString SectionLangsName 1038 "Language files"
LangString SectionMinGWName 1038 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1038 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1038 "Associate"
LangString SectionAssocExtNameEnd 1038 "files to Dev-C++"
LangString SectionShortcutsName 1038 "Shortcuts"
LangString SectionMenuLaunchName 1038 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1038 "Create Desktop shortcut"
LangString SectionConfigName 1038 "Remove old configuration files"
/* Italian 1040 */
LangString MessageSectionMain 1040 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1040 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1040 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1040 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1040 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1040 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1040 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1040 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1040 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1040 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1040 "Dev-C++ program files (required)"
LangString SectionIconsName 1040 "Icon files"
LangString SectionLangsName 1040 "Language files"
LangString SectionMinGWName 1040 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1040 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1040 "Associate"
LangString SectionAssocExtNameEnd 1040 "files to Dev-C++"
LangString SectionShortcutsName 1040 "Shortcuts"
LangString SectionMenuLaunchName 1040 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1040 "Create Desktop shortcut"
LangString SectionConfigName 1040 "Remove old configuration files"
/* Korean 1042 */
LangString MessageSectionMain 1042 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1042 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1042 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1042 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1042 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1042 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1042 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1042 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1042 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1042 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1042 "Dev-C++ program files (required)"
LangString SectionIconsName 1042 "Icon files"
LangString SectionLangsName 1042 "Language files"
LangString SectionMinGWName 1042 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1042 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1042 "Associate"
LangString SectionAssocExtNameEnd 1042 "files to Dev-C++"
LangString SectionShortcutsName 1042 "Shortcuts"
LangString SectionMenuLaunchName 1042 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1042 "Create Desktop shortcut"
LangString SectionConfigName 1042 "Remove old configuration files"
/* Latvian (1062) */
LangString MessageSectionMain 1062 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1062 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1062 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1062 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1062 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1062 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1062 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1062 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1062 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1062 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1062 "Dev-C++ program files (required)"
LangString SectionIconsName 1062 "Icon files"
LangString SectionLangsName 1062 "Language files"
LangString SectionMinGWName 1062 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1062 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1062 "Associate"
LangString SectionAssocExtNameEnd 1062 "files to Dev-C++"
LangString SectionShortcutsName 1062 "Shortcuts"
LangString SectionMenuLaunchName 1062 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1062 "Create Desktop shortcut"
LangString SectionConfigName 1062 "Remove old configuration files"
/* Polish (1045) */
LangString MessageSectionMain 1045 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1045 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1045 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1045 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1045 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1045 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1045 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1045 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1045 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1045 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1045 "Dev-C++ program files (required)"
LangString SectionIconsName 1045 "Icon files"
LangString SectionLangsName 1045 "Language files"
LangString SectionMinGWName 1045 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1045 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1045 "Associate"
LangString SectionAssocExtNameEnd 1045 "files to Dev-C++"
LangString SectionShortcutsName 1045 "Shortcuts"
LangString SectionMenuLaunchName 1045 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1045 "Create Desktop shortcut"
LangString SectionConfigName 1045 "Remove old configuration files"
/* Portuguese (2070) */
LangString MessageSectionMain 2070 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 2070 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 2070 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 2070 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 2070 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 2070 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 2070 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 2070 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 2070 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 2070 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 2070 "Dev-C++ program files (required)"
LangString SectionIconsName 2070 "Icon files"
LangString SectionLangsName 2070 "Language files"
LangString SectionMinGWName 2070 "${COMPILERNAME} compiler"
LangString SectionAssocsName 2070 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 2070 "Associate"
LangString SectionAssocExtNameEnd 2070 "files to Dev-C++"
LangString SectionShortcutsName 2070 "Shortcuts"
LangString SectionMenuLaunchName 2070 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 2070 "Create Desktop shortcut"
LangString SectionConfigName 2070 "Remove old configuration files"
/* Romanian (1048) */
LangString MessageSectionMain 1048 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1048 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1048 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1048 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1048 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1048 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1048 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1048 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1048 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1048 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1048 "Dev-C++ program files (required)"
LangString SectionIconsName 1048 "Icon files"
LangString SectionLangsName 1048 "Language files"
LangString SectionMinGWName 1048 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1048 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1048 "Associate"
LangString SectionAssocExtNameEnd 1048 "files to Dev-C++"
LangString SectionShortcutsName 1048 "Shortcuts"
LangString SectionMenuLaunchName 1048 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1048 "Create Desktop shortcut"
LangString SectionConfigName 1048 "Remove old configuration files"
/* Russian (1049) */
LangString MessageSectionMain 1049 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1049 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1049 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1049 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1049 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1049 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1049 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1049 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1049 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1049 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1049 "Dev-C++ program files (required)"
LangString SectionIconsName 1049 "Icon files"
LangString SectionLangsName 1049 "Language files"
LangString SectionMinGWName 1049 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1049 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1049 "Associate"
LangString SectionAssocExtNameEnd 1049 "files to Dev-C++"
LangString SectionShortcutsName 1049 "Shortcuts"
LangString SectionMenuLaunchName 1049 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1049 "Create Desktop shortcut"
LangString SectionConfigName 1049 "Remove old configuration files"
/* Slovak (1051) */
LangString MessageSectionMain 1051 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1051 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1051 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1051 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1051 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1051 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1051 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1051 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1051 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1051 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1051 "Dev-C++ program files (required)"
LangString SectionIconsName 1051 "Icon files"
LangString SectionLangsName 1051 "Language files"
LangString SectionMinGWName 1051 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1051 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1051 "Associate"
LangString SectionAssocExtNameEnd 1051 "files to Dev-C++"
LangString SectionShortcutsName 1051 "Shortcuts"
LangString SectionMenuLaunchName 1051 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1051 "Create Desktop shortcut"
LangString SectionConfigName 1051 "Remove old configuration files"
/* Slovenian (1060) */
LangString MessageSectionMain 1060 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1060 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1060 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1060 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1060 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1060 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1060 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1060 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1060 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1060 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1060 "Dev-C++ program files (required)"
LangString SectionIconsName 1060 "Icon files"
LangString SectionLangsName 1060 "Language files"
LangString SectionMinGWName 1060 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1060 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1060 "Associate"
LangString SectionAssocExtNameEnd 1060 "files to Dev-C++"
LangString SectionShortcutsName 1060 "Shortcuts"
LangString SectionMenuLaunchName 1060 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1060 "Create Desktop shortcut"
LangString SectionConfigName 1060 "Remove old configuration files"
/* Spanish (1034) */
LangString MessageSectionMain 1034 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1034 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1034 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1034 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1034 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1034 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1034 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1034 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1034 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1034 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1034 "Dev-C++ program files (required)"
LangString SectionIconsName 1034 "Icon files"
LangString SectionLangsName 1034 "Language files"
LangString SectionMinGWName 1034 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1034 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1034 "Associate"
LangString SectionAssocExtNameEnd 1034 "files to Dev-C++"
LangString SectionShortcutsName 1034 "Shortcuts"
LangString SectionMenuLaunchName 1034 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1034 "Create Desktop shortcut"
LangString SectionConfigName 1034 "Remove old configuration files"
/* Swedish (1053) */
LangString MessageSectionMain 1053 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1053 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1053 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1053 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1053 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1053 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1053 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1053 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1053 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1053 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1053 "Dev-C++ program files (required)"
LangString SectionIconsName 1053 "Icon files"
LangString SectionLangsName 1053 "Language files"
LangString SectionMinGWName 1053 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1053 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1053 "Associate"
LangString SectionAssocExtNameEnd 1053 "files to Dev-C++"
LangString SectionShortcutsName 1053 "Shortcuts"
LangString SectionMenuLaunchName 1053 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1053 "Create Desktop shortcut"
LangString SectionConfigName 1053 "Remove old configuration files"
/* Turkish (1055) */
LangString MessageSectionMain 1055 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1055 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1055 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1055 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1055 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1055 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1055 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1055 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1055 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1055 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1055 "Dev-C++ program files (required)"
LangString SectionIconsName 1055 "Icon files"
LangString SectionLangsName 1055 "Language files"
LangString SectionMinGWName 1055 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1055 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1055 "Associate"
LangString SectionAssocExtNameEnd 1055 "files to Dev-C++"
LangString SectionShortcutsName 1055 "Shortcuts"
LangString SectionMenuLaunchName 1055 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1055 "Create Desktop shortcut"
LangString SectionConfigName 1055 "Remove old configuration files"
/* Ukrainian (1058) */
LangString MessageSectionMain 1058 "The Dev-C++ IDE (Integrated Development Environment), package manager and templates"
LangString MessageSectionIcons 1058 "Various icons that you can use in your programs"
LangString MessageSectionMinGW 1058 "The ${COMPILERNAME} compiler and associated tools, headers and libraries"
LangString MessageSectionLangs 1058 "The Dev-C++ interface translated to different languages (other than English which is built-in)"
LangString MessageSectionAssocs 1058 "Use Dev-C++ as the default application for opening these types of files"
LangString MessageSectionShortcuts 1058 "Create shortcuts to Dev-C++ in various folders"
LangString MessageSectionConfig 1058 "Remove all leftover configuration files from previous installs"
LangString MessageUninstallText 1058 "This program will uninstall Red Panda Dev-C++, continue?"
LangString MessageUninstallExisting 1058 "Red Panda Dev-C++ is already installed. $\n$\nClick OK to remove the previous version or Cancel to cancel the installation."
LangString MessageRemoveConfig 1058 "Do you want to remove all the remaining configuration files?"
LangString SectionMainName 1058 "Dev-C++ program files (required)"
LangString SectionIconsName 1058 "Icon files"
LangString SectionLangsName 1058 "Language files"
LangString SectionMinGWName 1058 "${COMPILERNAME} compiler"
LangString SectionAssocsName 1058 "Associate files to Dev-C++"
LangString SectionAssocExtNameBegin 1058 "Associate"
LangString SectionAssocExtNameEnd 1058 "files to Dev-C++"
LangString SectionShortcutsName 1058 "Shortcuts"
LangString SectionMenuLaunchName 1058 "Create Start Menu shortcuts"
LangString SectionDesktopLaunchName 1058 "Create Desktop shortcut"
LangString SectionConfigName 1058 "Remove old configuration files"