Merge remote-tracking branch 'base/master'

Add _CRT_NON_CONFORMING_WCSTOK define.
This commit is contained in:
NN--- 2015-08-02 22:03:38 +03:00 committed by NN
commit 53c4791064
89 changed files with 3972 additions and 165299 deletions

7
.gitignore vendored
View File

@ -111,3 +111,10 @@ scintilla/cppcheck.suppress
scintilla/.hg_archival.txt
scintilla/.hgignore
scintilla/bin/__init__.py
PowerEditor/bin/NppShell64_06.dll
PowerEditor/bin/NppShell_06.dll
PowerEditor/bin/SourceCodePro-Bold.ttf
PowerEditor/bin/SourceCodePro-BoldIt.ttf
PowerEditor/bin/SourceCodePro-It.ttf
PowerEditor/bin/SourceCodePro-Regular.ttf

View File

@ -4,103 +4,106 @@ Your pull requests are welcome; however, they may not be accepted for various re
## Before you contribute
All Pull Requests, except for translations and user documentation, need to be
attached to a issue on GitHub. For Pull Requests regarding enhancements and questions,
the issue must first be approved by one of project's administrators before being
merged into the project. An approved issue will have the label `Accepted`. For issues
that have not been accepted, you may request to be assigned to that issue.
All Pull Requests, except for translations and user documentation, need to be attached to a issue on GitHub. For Pull Requests regarding enhancements and questions, the issue must first be approved by one of project's administrators before being merged into the project. An approved issue will have the label `Accepted`. For issues that have not been accepted, you may request to be assigned to that issue.
Opening a issue beforehand allows the adminstrators and the communitiy to discuss
bugs and enhancements before work begins, preventing wasted effort.
Opening a issue beforehand allows the administrators and the community to discuss bugs and enhancements before work begins, preventing wasted effort.
## Guidelines for pull requests:
## Guidelines for pull requests
1. Respect Notepad++ coding style.
2. Make a single change per commit.
3. Make your modification compact - don't reformat source code in your request. It makes code review more difficult.
4. PR of reformatting (changing of ws/TAB, line endings or coding style) of source code won't be accepted. Use issue trackers for your request instead.
In short: The easier the code review is, the better the chance your pull request will get accepted.
## Coding style
![stay clean](https://notepad-plus-plus.org/assets/images/good-bad-practice.jpg)
##Coding style:
####GENERAL
#### GENERAL
* Do not use Java-like braces:
1. ##### Do not use Java-like braces.
GOOD:
```c
* ###### Good:
```cpp
if ()
{
// Do something
}
```
BAD:
```c
```
* ###### Bad:
```cpp
if () {
// Do something
}
```
* Use tabs instead of whitespaces (we usually set our editors to 4
whitespaces for 1 tab, but the choice is up to you)
```
1. ##### Use tabs instead of white-spaces (we usually set our editors to 4 white-spaces for 1 tab, but the choice is up to you).
* Always leave one space before and after binary and ternary operators
Only leave one space after semi-colons in "for" statements.
1. ##### Always leave one space before and after binary and ternary operators.
GOOD:
```c
* ###### Good:
```cpp
if (10 == a && 42 == b)
```
BAD:
```c
```
* ###### Bad:
```cpp
if (a==10&&b==42)
```
GOOD:
```c
```
1. ##### Only leave one space after semi-colons in "for" statements.
* ###### Good:
```cpp
for (int i = 0; i != 10; ++i)
```
BAD:
```c
for(int i=0;i<10;++i)
```
* Keywords are not function calls.
Function names are not separated from the first parenthesis:
GOOD:
```c
* ###### Bad:
```cpp
for(int i=0;i<10;++i)
```
1. <h5>Keywords are not function calls;<br>
Function names are not separated from the first parenthesis.</h5>
* ###### Good:
```cpp
foo();
myObject.foo(24);
```
BAD:
```c
foo ();
```
* Keywords are separated from the first parenthesis by one space :
```
GOOD:
```c
* ###### Bad:
```cpp
foo ();
```
1. ##### Keywords are separated from the first parenthesis by one space.
* ###### Good:
```cpp
if (true)
while (true)
```
BAD:
```c
if(myCondition)
```
```
* Use the following indenting for "switch" statements
```c
* ###### Bad:
```cpp
if(myCondition)
```
1. ##### Use the following indenting for "switch" statements:
```cpp
switch (test)
{
case 1:
@ -111,109 +114,151 @@ BAD:
default:
// Do something else
} // No semi-colon here
```
```
* Avoid magic numbers
1. ##### Avoid magic numbers.
BAD:
```c
while (lifeTheUniverseAndEverything != 42)
lifeTheUniverseAndEverything = buildMorePowerfulComputerForTheAnswer();
```
GOOD:
```c
* ###### Good:
```cpp
if (foo < I_CAN_PUSH_ON_THE_RED_BUTTON)
startThermoNuclearWar();
```
```
* Prefer enums for integer constants
* ###### Bad:
```cpp
while (lifeTheUniverseAndEverything != 42)
lifeTheUniverseAndEverything = buildMorePowerfulComputerForTheAnswer();
```
1. ##### Prefer enums for integer constants.
1. ##### Use initialization with curly braces.
* ###### Good:
```cpp
MyClass instance{10.4};
```
* ###### Bad:
```cpp
MyClass instance(10.4);
```
1. ##### Always use `empty()` for testing if a string is empty or not.
* ###### Good:
```cpp
if (not string.empty())
...
```
* ###### Bad:
```cpp
if (string != "")
...
```
####NAMING CONVENTIONS
#### NAMING CONVENTIONS
* Classes (camel case) :
1. ##### Classes (camel case)
GOOD:
```c
* ###### Good:
```cpp
class IAmAClass
{};
```
BAD:
```c
```
* ###### Bad:
```cpp
class iAmClass
{};
class I_am_class
{};
```
```
* methods (camel case + begins with a lower case)
method parameters (camel case + begins with a lower case)
1. <h5>methods (camel case + begins with a lower case)<br>
method parameters (camel case + begins with a lower case)</h5>
GOOD:
```c
```cpp
void myMethod(uint myVeryLongParameter);
```
* member variables
Any member variable name of class/struct should be preceded by an underscore
```c
```
1. <h5>member variables<br>
Any member variable name of class/struct should be preceded by an underscore.</h5>
```cpp
public:
int _publicAttribute;
private:
int _pPrivateAttribute;
float _pAccount;
```
```
* Always prefer a variable name that describes what the variable is used for
1. ##### Always prefer a variable name that describes what the variable is used for.
GOOD:
```c
* ###### Good:
```cpp
if (hours < 24 && minutes < 60 && seconds < 60)
```
BAD:
```c
```
* ###### Bad:
```cpp
if (a < 24 && b < 60 && c < 60)
```
```
####COMMENTS
* Use C++ comment line style than c comment style
GOOD:
```
#### COMMENTS
1. ##### Use C++ comment line style than C comment style.
* ###### Good:
```
// Two lines comment
// Use still C++ comment line style
```
BAD:
```
```
* ###### Bad:
```
/*
Please don't piss me off with that
*/
```
```
####BEST PRACTICES
* Prefer this form :
```c
#### BEST PRACTICES
1. ##### Use C++11/14 whenever it is possible
1. ##### Use C++11 member initialization feature whenever it is possible
```cpp
class Foo
{
int value = 0;
};
```
1. ##### Prefer this form:
```cpp
++i
```
to
```c
```
**to:**
```cpp
i++
```
(It does not change anything for builtin types but it would bring consistency)
```
(It does not change anything for built-in types but it would bring consistency)
1. ##### Avoid using pointers. Prefer references. You might need the variable to be assigned a NULL value: in this case the NULL value has semantics and must be checked. Wherever possible, use a SmartPtr instead of old-school pointers.
* Avoid using pointers. Prefer references. You might need the variable to
be assigned a NULL value: in this case the NULL value has semantics and must
be checked. Wherever possible, use a SmartPtr instead of old-school pointers.
1. ##### Avoid using new if you can use automatic variable. However, avoid `shared_ptr` as much as possible. Prefer `unique_ptr` instead.
* Avoid using new if you can use automatic variable.
1. ##### Don't place any "using namespace" directives in headers.
* Don't place any "using namespace" directives in headers
1. ##### Compile time is without incidence. Increasing compile time to reduce execution time is encouraged.
* Compile time is without incidence. Increasing compile time to reduce execution
time is encouraged.
* Code legibility and length is less important than easy and fast end-user experience.
1. ##### Code legibility and length is less important than easy and fast end-user experience.

Binary file not shown.

View File

@ -1,34 +1,17 @@
Notepad++ v6.7.9.2 bug-fix:
Notepad++ v6.8 new features and bug-fix:
1. Fix JavaScript block not recognized in HTML document.
Notepad++ v6.7.9.1 new features and bug-fix:
1. Fix Hanging on exit of Notepad++ issue (update DSpellCheck for its instability issue).
2. Add "Google Search" command in the context menu.
Notepad++ v6.7.9 new features and bug-fix:
1. Upgrade Scintilla to v3.56.
2. Add Language and EOL conversion context menu on status bar.
3. Enhance sort lines feature: Add lexicographic and numeric (integer and real) sorting with ascending and descending order.
4. Add new feature which launches a new instance with administrator privilege to save the protected file.
5. Fix the context menu not working problem after doing find in files action.
6. Improve copy (to clipboard) in found results panel.
7. Improve find in files modal dialog.
1. Settings on cloud feature allows users to write their settings on whichever cloud.
2. Use Source Code Pro as default font.
3. Make smooth font optional.
4. Fix the context menu disappears problem after find in files operation.
Included plugins:
1. DSpellCheck v1.2.14.1
2. NppFTP 0.26.3
3. NppExport v0.2.8
4. Plugin Manager 1.3.5
5. Converter 3.0
6. Mime Tool 1.9
1. NppFTP 0.26.3
2. NppExport v0.2.8
3. Plugin Manager 1.3.5
4. Converter 3.0
5. Mime Tool 1.9

0
PowerEditor/bin/nppIExplorerShell.exe Normal file → Executable file
View File

0
PowerEditor/bin/updater/GUP.exe Normal file → Executable file
View File

0
PowerEditor/bin/updater/gpup.exe Normal file → Executable file
View File

0
PowerEditor/installer/bin/xmlUpdater.exe Normal file → Executable file
View File

View File

@ -5,7 +5,7 @@
<Main>
<!-- Main Menu Entries -->
<Entries>
<Item menuId="file" name = "&amp;ملف"/>/
<Item menuId="file" name = "&amp;ملف"/>
<Item menuId="edit" name = "&amp;تحرير"/>
<Item menuId="search" name = "&amp;بحث"/>
<Item menuId="view" name = "&amp;عرض"/>

View File

@ -3,7 +3,7 @@
## Bulgarian localization for Notepad++ ##
Translators:.....: 2007-2012 - Milen Metev (Tragedy); 2014-yyyy - RDD
Last modified:...: 20.06.2015 by RDD
Last modified:...: 24.07.2015 by RDD
Download:........: https://drive.google.com/file/d/0B2sYyYGUvu5dMEJYR2xMcWw2Nms
-->
<NotepadPlus>
@ -706,6 +706,7 @@
<Item id="6205" name="Квадрат"/>
<Item id="6226" name="Изключено"/>
<Item id="6211" name="Настройки на вертикална граница"/>
<Item id="6208" name="Показване на границата"/>
<Item id="6212" name="Линеен режим"/>
<Item id="6213" name="Фонов режим"/>
<Item id="6209" name="Брой колони: "/>
@ -717,7 +718,7 @@
<Item id="6206" name="Показване номер на редовете"/>
<Item id="6207" name="Показване на лента с отметки"/>
<Item id="6214" name="Оцветяване на текущия ред"/>
<Item id="6208" name="Показване на границата"/>
<Item id="6215" name="Заглаждане на шрифта"/>
<Item id="6234" name="Изключване на разширените функции за превъртане"/>
</Scintillas>
<!-- Нов документ -->
@ -857,10 +858,8 @@
<Cloud title="Облак">
<Item id="6262" name="Настройки за облачно синхронизирана папка"/>
<Item id="6263" name="Локално"/>
<Item id="6264" name="Dropbox"/>
<Item id="6265" name="OneDrive"/>
<Item id="6266" name="Google Drive"/>
<!--Item id="6261" name="Промените влизат в сила, след рестартиране на Notepad++."/-->
<Item id="6267" name="По избор"/>
<Item id="6261" name="Промените влизат в сила, след рестартиране на Notepad++."/>
</Cloud>
<!-- Разни -->
<MISC title="Разни">
@ -896,6 +895,7 @@
<Item id="2033" name="Числа за вмъкване"/>
<Item id="2030" name="Начално число:"/>
<Item id="2031" name="Увеличаване с:"/>
<Item id="2036" name="Повтаряне:"/>
<Item id="2035" name="започване с 0"/>
<Item id="2032" name="Формат"/>
<Item id="2024" name="Десетичен"/>

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
- last change: 28 Apr 2015 by Ondřej Müller (mullero@email.cz)
- all Czech translations at: http://sourceforge.net/p/notepad-plus/discussion/558104/thread/edb297e2/
- last change: Notepad++ 6.8 22/Jul/2015 by Ondřej Müller (mullero@email.cz)
- all older Czech translations at: http://sourceforge.net/p/notepad-plus/discussion/558104/thread/edb297e2/
- contributors: Ondřej Müller (mullero@email.cz), Tomáš Hrouda (gobbet@centrum.cz)
-->
<NotepadPlus>
<Native-Langue name = "Čeština" filename="czech.xml" version="6.7.7">
<Native-Langue name = "Čeština" filename="czech.xml" version="6.8">
<Menu>
<Main>
<!-- Main Menu Entries -->
@ -145,9 +146,15 @@
<Item id = "42055" name = "Odstranit prázdné řádky"/>
<Item id = "42056" name = "Odstranit prázdné řádky (obsahující prázdné znaky)"/>
<Item id = "42057" name = "Vložit prázdný řádek nad aktuální"/>
<Item id = "42058" name = "Vložit prázdný řádek pod aktuální"/>!
<Item id = "42058" name = "Vložit prázdný řádek pod aktuální"/>
<Item id = "42059" name = "Setřídit řádky vzestupně"/>
<Item id = "42060" name = "Setřídit řádky sestupně"/>
<Item id = "42061" name = "Setřídit řádky (podle celých čísel) vzestupně"/>
<Item id = "42062" name = "Setřídit řádky (podle celých čísel) sestupně"/>
<Item id = "42063" name = "Setřídit řádky (podle desetinných čísel s čárkou) vzestupně"/>
<Item id = "42064" name = "Setřídit řádky (podle desetinných čísel s čárkou) sestupně"/>
<Item id = "42065" name = "Setřídit řádky (podle desetinných čísel s tečkou) vzestupně"/>
<Item id = "42066" name = "Setřídit řádky (podle desetinných čísel s tečkou) sestupně"/>
<Item id = "43001" name = "&amp;Najít..."/>
<Item id = "43002" name = "Najít &amp;další"/>
<Item id = "43003" name = "Nahradit..."/>
@ -261,7 +268,7 @@
<Item id = "45054" name = "OEM 861: Islandština"/>
<Item id = "45057" name = "OEM 865: Skandinávské jazyky"/>
<Item id = "45053" name = "OEM 860: Portugalština"/>
<Item id = "45056" name = "OEM 863: Francoužština"/>
<Item id = "45056" name = "OEM 863: Francouzština"/>
<Item id = "10001" name = "Přepnout náhled"/>
<Item id = "10002" name = "Vytvořit kopii v samostatném náhledu"/>
@ -284,8 +291,9 @@
<Item id = "47006" name = "Aktualizovat Notepad++"/>
<Item id = "47007" name = "Wiki FAQ"/>
<Item id = "47008" name = "Obsah nápovědy"/>
<Item id = "47009" name = "Nastavit aktualizaci proxy-serveru ..." />
<Item id = "47010" name = "Parametry příkazové řádky" />
<Item id = "47009" name = "Nastavit aktualizaci proxy-serveru ..."/>
<Item id = "47010" name = "Parametry příkazové řádky"/>
<Item id = "47011" name = "Online podpora"/>
<Item id = "48005" name = "Importovat plugin(y) ..."/>
<Item id = "48006" name = "Importovat styl(y) ..."/>
<Item id = "48009" name = "Asociace klávesových zkratek..."/>
@ -688,6 +696,7 @@
<Item id = "6212" name = "Okraj"/>
<Item id = "6213" name = "Zvýraznit přesah řádky"/>
<Item id = "6214" name = "Zvýraznit aktivní řádek"/>
<Item id = "6215" name = "Povolit vyhlazování fontu"/>
<Item id = "6216" name = "Nastavení kurzoru"/>
<Item id = "6217" name = "Šířka:"/>
<Item id = "6219" name = "Rychlost blikání:"/>
@ -857,9 +866,7 @@
<!--Item id="6261" name="Pro aktivaci změn prosím restartujte Notepad++."/-->
<Item id = "6262" name = "Nastavení internetového úložišťě"/>
<Item id = "6263" name = "bez cloudu"/>
<Item id = "6264" name = "DropBox"/>
<Item id = "6265" name = "OneDrive"/>
<Item id = "6266" name = "GoogleDrive"/>
<Item id = "6267" name = "Zde nastavte cestu k Vašemu i-úložišti:"/>
</Cloud>
</Preference>
@ -882,15 +889,16 @@
<ColumnEditor title = "Editor sloupce">
<Item id = "2023" name = "Text ke vložení"/>
<Item id = "2033" name = "Číslo ke vložení"/>
<Item id = "2030" name = "Počáteční číslo:"/>
<Item id = "2031" name = "Inkrementace po:"/>
<Item id = "2035" name = "Uvozující nuly"/>
<Item id = "2032" name = "Formát"/>
<Item id = "2024" name = "Dec"/>
<Item id = "2025" name = "Oct"/>
<Item id = "2026" name = "Hex"/>
<Item id = "2027" name = "Bin"/>
<Item id = "2030" name = "Počáteční číslo:"/>
<Item id = "2031" name = "Inkrementace po:"/>
<Item id = "2032" name = "Formát"/>
<Item id = "2033" name = "Číslo ke vložení"/>
<Item id = "2035" name = "Uvozující nuly"/>
<Item id = "2036" name = "Opakování:"/>
<Item id = "1" name = "OK"/>
<Item id = "2" name = "Storno"/>
</ColumnEditor>
@ -902,13 +910,14 @@
<NppHelpAbsentWarning title = "Soubor neexistuje" message = " neexistuje. Stáhněte si jej prosím z domovské stránky Notepadu++."/>
<SaveCurrentModifWarning title = "Uložit změny" message = "Měli byste uložit aktuální změny. Uložené změny nemohou být vráceny zpět. Pokračovat?"/>
<LoseUndoAbilityWarning title = "Varování před ztrátou možnosti vrátit změny" message = "Měli byste uložit aktuální změny. Uložené změny nemohou být vráceny zpět. Pokračovat?"/>
<NbFileToOpenImportantWarning title = "Velmi mnoho souborů k otevření" message = "$INT_REPLACE$ souborů má být otevřeno.\rJste si jisti, že je chcete všechny opravdu otevřít?"/>
<CannotMoveDoc title = "Přejít k nové instanci Notepadu++" message = "Dokument je modifikován, uložte jej a poté to zkuste znovu."/>
<DocReloadWarning title = "Znovu otevřít" message = "Jste si jisti, že chcete znovu načíst aktuální soubor a ztratit tak změny udělané v Notepadu++?"/>
<FileLockedWarning title = "Uložení selhalo" message = "Prosím zkontrolujte, zda tento soubor není otevřen jiným programem"/>
<FileAlreadyOpenedInNpp title = "" message = "Tento soubor je již otevřen v Notepadu++."/>
<DeleteFileFailed title = "Odstranit Soubor" message = "Odstranění souboru selhalo"/>
<NbFileToOpenImportantWarning title = "Množství souborů k otevření je příliš veliké" message = "$INT_REPLACE$ souborů má být otevřeno.\rJste si tím jisti?"/>
<!-- $INT_REPLACE$ is a place holder, don't translate it -->
<NbFileToOpenImportantWarning title = "Velmi mnoho souborů k otevření" message = "$INT_REPLACE$ souborů má být otevřeno.\rJste si tím jisti?"/>
<SettingsOnCloudError title = "Nastavení cloudu" message = "Zdá se, že nastavená cesta k i-úložišti ukazuje na jednotku, která je určena pouze ke čtení\r nebo na složku bez oprávnění k zápisu.\rVaše nastavení i-úložiště bude zrušeno. Prosím nastavte znovu odpovídající hodnotu v dialogu Volby..."/>
</MessageBox>
<ProjectManager>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<NotepadPlus>
<Native-Langue name="Dansk" filename="danish.xml" version="6.7.5">
<Native-Langue name="Dansk" filename="danish.xml" version="6.7.7">
<Menu>
<Main>
<!-- Main Menu Entries -->
@ -22,7 +22,7 @@
<Item subMenuId="file-openFolder" name="Åbn overordnet mappe"/>
<Item subMenuId="file-closeMore" name="Luk flere"/>
<Item subMenuId="file-recentFiles" name="Seneste filer"/>
<Item subMenuId="edit-copyToClipboard" name="Kopier til udklipsholder"/>
<Item subMenuId="edit-copyToClipboard" name="Kopiér til udklipsholder"/>
<Item subMenuId="edit-indent" name="Indryk"/>
<Item subMenuId="edit-convertCaseTo" name="Konvertér versaltype"/>
<Item subMenuId="edit-lineOperations" name="Linjehandlinger"/>
@ -86,9 +86,10 @@
<Item id="41015" name="Gem en kopi som..."/>
<Item id="41016" name="Slet fra disk"/>
<Item id="41017" name="Omdøb..."/>
<Item id="41021" name="Åbn seneste lukkede fil"/>
<Item id="42001" name="&amp;Klip"/>
<Item id="42002" name="K&amp;opier"/>
<Item id="42002" name="K&amp;opiér"/>
<Item id="42003" name="&amp;Fortryd"/>
<Item id="42004" name="&amp;Gentag"/>
<Item id="42005" name="Sæt &amp;ind"/>
@ -102,6 +103,14 @@
<Item id="42013" name="Sammenføj linjer"/>
<Item id="42014" name="Flyt nuværende linje op"/>
<Item id="42015" name="Flyt nuværende linje ned"/>
<Item id="42059" name="Sortér linjer i stigende orden"/>
<Item id="42060" name="Sortér linjer i faldende orden"/>
<Item id="42061" name="Sortér linjer som heltal i stigende orden"/>
<Item id="42062" name="Sortér linjer som heltal i faldende orden"/>
<Item id="42063" name="Sortér linjer som decimaltal (komma) i stigende orden"/>
<Item id="42064" name="Sortér linjer som decimaltal (komma) i faldende orden"/>
<Item id="42065" name="Sortér linjer som decimaltal (punktum) i stigende orden"/>
<Item id="42066" name="Sortér linjer som decimaltal (punktum) i faldende orden"/>
<Item id="42016" name="Store bogstaver"/>
<Item id="42017" name="Små bogstaver"/>
<Item id="42018" name="&amp;Start optagelse"/>
@ -120,7 +129,7 @@
<Item id="42053" name="Mellemrum til TAB (foranstillede)"/>
<Item id="42038" name="Indsæt HTML-indhold"/>
<Item id="42039" name="Indsæt RTF-indhold"/>
<Item id="42048" name="Kopier binært indhold"/>
<Item id="42048" name="Kopiér binært indhold"/>
<Item id="42049" name="Klip binært indhold"/>
<Item id="42050" name="Indsæt binært indhold"/>
<Item id="42037" name="Kolonnetilstand..."/>
@ -142,8 +151,6 @@
<Item id="42056" name="Fjern tomme linjer (med blanktegn)"/>
<Item id="42057" name="Indsæt tom linje over nuværende"/>
<Item id="42058" name="Indsæt tom linje under nuværende"/>
<Item id="42059" name="Sortér linjer i stigende orden"/>
<Item id="42060" name="Sortér linjer i faldende orden"/>
<Item id="43001" name="S&amp;øg..."/>
<Item id="43002" name="Find &amp;næste"/>
<Item id="43003" name="Erstat..."/>
@ -153,7 +160,7 @@
<Item id="43007" name="Forrige bogmærke"/>
<Item id="43008" name="Ryd alle bogmærker"/>
<Item id="43018" name="Klip bogmærkede linjer"/>
<Item id="43019" name="Kopier bogmærkede linjer"/>
<Item id="43019" name="Kopiér bogmærkede linjer"/>
<Item id="43020" name="Indsæt (erstat) bogmærkede linjer"/>
<Item id="43021" name="Slet bogmærkede linjer"/>
<Item id="43051" name="Fjern umarkerede linjer"/>
@ -270,10 +277,9 @@
<Item id="47001" name="Notepad++ hjem"/>
<Item id="47002" name="Notepad++ projektside"/>
<Item id="47003" name="Online dokumentation"/>
<Item id="47004" name="Forum"/>
<Item id="47011" name="Live Support"/>
<Item id="47005" name="Hent flere plugins"/>
<Item id="47006" name="Opdater Notepad++"/>
<Item id="47008" name="Hjælp"/>
<Item id="47009" name="Opsæt opdateringsproxy..."/>
<Item id="48005" name="Importér plugins..."/>
<Item id="48006" name="Importér temaer..."/>
@ -303,9 +309,9 @@
<Item CMID="4" name="Udskriv"/>
<Item CMID="5" name="Flyt til anden visning"/>
<Item CMID="6" name="Klon til anden visning"/>
<Item CMID="7" name="Kopier fuld filsti"/>
<Item CMID="8" name="Kopier filnavn"/>
<Item CMID="9" name="Kopier mappesti"/>
<Item CMID="7" name="Kopiér fuld filsti"/>
<Item CMID="8" name="Kopiér filnavn"/>
<Item CMID="9" name="Kopiér mappesti"/>
<Item CMID="10" name="Omdøb"/>
<Item CMID="11" name="Flyt til papirkurv"/>
<Item CMID="12" name="Skrivebeskyttet"/>
@ -328,7 +334,7 @@
<Item id="1603" name="Søg &amp;kun på hele ord"/>
<Item id="1604" name="&amp;Forskel på store og små bogstaver"/>
<Item id="1605" name="Regulær&amp;e udtryk"/>
<Item id="1606" name="Start &amp;forfra når slutningen er nået"/>
<Item id="1606" name="Forfra &amp;når slutningen er nået"/>
<Item id="1612" name="&amp;Op"/>
<Item id="1613" name="Ne&amp;d"/>
<Item id="1614" name="Tæl"/>
@ -339,17 +345,16 @@
<Item id="1611" name="Erstat &amp;med:"/>
<Item id="1608" name="E&amp;rstat"/>
<Item id="1609" name="Erstat &amp;alle"/>
<Item id="1686" name="Gennemsigtig"/>
<Item id="1687" name="Udenfor fokus"/>
<Item id="1688" name="Altid"/>
<Item id="1632" name="I markerede"/>
<Item id="1632" name="I markering"/>
<Item id="1633" name="Ryd"/>
<Item id="1635" name="Erstat alle i alle åbne dokumenter"/>
<Item id="1636" name="Find alle i alle åbne dokumenter"/>
<Item id="1654" name="Filtre:"/>
<Item id="1655" name="Bibliotek:"/>
<Item id="1656" name="Find &amp;alle"/>
<Item id="1658" name="I alle undermapper"/>
<Item id="1656" name="Find alle"/>
<Item id="1658" name="I underliggende mapper"/>
<Item id="1659" name="I skjulte mapper"/>
<Item id="1624" name="Søgemetode"/>
<Item id="1625" name="Normal"/>
@ -357,6 +362,7 @@
<Item id="1660" name="Erstat i filer"/>
<Item id="1661" name="Følg nuværende dok."/>
<Item id="1641" name="Find alle i nuværende dokument"/>
<Item id="1686" name="Gennemsigtig"/>
<Item id="1703" name="&amp;. som linjeskift"/>
</Find>
@ -383,7 +389,7 @@
</GoToLine>
<Run title="Kør...">
<Item id="1903" name="Programmet der skal køres"/>
<Item id="1903" name="Program der skal køres"/>
<Item id="1" name="Kør"/>
<Item id="2" name="Annuller"/>
<Item id="1904" name="Gem..."/>
@ -629,8 +635,8 @@
<Item id="6201" name="Sammenfoldningsstil på margin"/>
<Item id="6202" name="Enkel"/>
<Item id="6203" name="Pil"/>
<Item id="6204" name="Træ med cirkler"/>
<Item id="6205" name="Træ med firkanter"/>
<Item id="6204" name="Træ m. cirkler"/>
<Item id="6205" name="Træ m. firkanter"/>
<Item id="6226" name="Ingen"/>
<Item id="6227" name="Linjeombrydning"/>
@ -642,7 +648,8 @@
<Item id="6207" name="Vis bogmærker"/>
<Item id="6208" name="Vis lodret kant"/>
<Item id="6209" name="Antal kolonner: "/>
<Item id="6234" name="Deaktivér avanceret rullefunktion (hvis du oplever problemer med touchpad)"/>
<Item id="6234" name="Deaktivér avanceret rullefunktion
(hvis du har problemer med touchpad)"/>
<Item id="6211" name="Lodret kantindstilling"/>
<Item id="6212" name="Linjetilstand"/>
@ -824,7 +831,7 @@
<Item id="8006" name="Vælg makro:"/>
<Item id="8001" name="Kør"/>
<Item id="8005" name="gange"/>
<Item id="8002" name="Kør indtil filen slutter"/>
<Item id="8002" name="Kør indtil filens slutning"/>
</MultiMacro>
<Window title="Vinduer">
<Item id="1" name="Aktivér"/>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Dutch localization for Notepad++ 6.5.2
Last modified Fri, Dec 13 2013 by Klaas Nekeman.
Dutch localization for Notepad++ 6.8
Last modified Thu, Jul 23 2015 by Klaas Nekeman.
Please e-mail errors, suggestions etc. to knekeman(at)hotmail.com.
-->
<NotepadPlus>
<Native-Langue name="Nederlands" filename="dutch.xml" version="6.5.2">
<Native-Langue name="Nederlands" filename="dutch.xml" version="6.8">
<Menu>
<Main>
<!-- Main Menu Titles -->
@ -14,7 +14,7 @@
<Item menuId="edit" name="Be&amp;werken"/>
<Item menuId="search" name="&amp;Zoeken"/>
<Item menuId="view" name="Beel&amp;d"/>
<Item menuId="encoding" name="&amp;Codering"/>
<Item menuId="encoding" name="&amp;Karakterset"/>
<Item menuId="language" name="&amp;Syntaxis"/>
<Item menuId="settings" name="&amp;Instellingen"/>
<Item menuId="macro" name="&amp;Macro"/>
@ -94,6 +94,7 @@
<Item id="41017" name="Naam wijzigen..."/>
<Item id="41019" name="Bestand weergeven in Windows Verkenner"/>
<Item id="41020" name="Opdrachtprompt openen"/>
<Item id="41021" name="Laatste bestand opnieuw openen"/>
<Item id="42001" name="K&amp;nippen"/>
<Item id="42002" name="&amp;Kopiëren"/>
<Item id="42003" name="&amp;Ongedaan maken"/>
@ -153,6 +154,12 @@
<Item id="42058" name="Regeleinde invoegen na deze regel"/>
<Item id="42059" name="Regels sorteren in oplopende volgorde"/>
<Item id="42060" name="Regels sorteren in aflopende volgorde"/>
<Item id="42061" name="Regels sorteren (hele getallen) oplopend"/>
<Item id="42062" name="Regels sorteren (hele getallen) aflopend"/>
<Item id="42063" name="Regels sorteren (decimalen &quot;,&quot;) oplopend"/>
<Item id="42064" name="Regels sorteren (decimalen &quot;,&quot;) aflopend"/>
<Item id="42065" name="Regels sorteren (decimalen &quot;.&quot;) oplopend"/>
<Item id="42066" name="Regels sorteren (decimalen &quot;.&quot;) aflopend"/>
<Item id="43001" name="&amp;Zoeken..."/>
<Item id="43002" name="&amp;Volgende zoeken"/>
<Item id="43003" name="Verv&amp;angen..."/>
@ -203,6 +210,7 @@
<Item id="43051" name="Regels zonder bladwijzer wissen"/>
<Item id="43052" name="Zoeken naar karakter in bereik..."/>
<Item id="43053" name="Alles selecteren tussen bij elkaar horende haakjes"/>
<Item id="43054" name="Markeren..."/>
<Item id="44009" name="Interface verbergen"/>
<Item id="44010" name="Gegevensstructuur samenvouwen"/>
<Item id="44012" name="Regelnummers verbergen"/>
@ -256,22 +264,28 @@
<Item id="45011" name="Naar UTF-8 converteren"/>
<Item id="45012" name="Naar UCS-2 Big Endian converteren"/>
<Item id="45013" name="Naar UCS-2 Little Endian converteren"/>
<Item id="45053" name="OEM 860: Portugees"/>
<Item id="45054" name="OEM 861: IJslands"/>
<Item id="45056" name="OEM 863: Frans"/>
<Item id="45057" name="OEM 865: Scandinavisch"/>
<Item id="45060" name="Big5 (Traditioneel)"/>
<Item id="45061" name="GB2312 (Vereenvoudigd)"/>
<Item id="46001" name="Opmaak..."/>
<Item id="46015" name="MSDOS/ASCII"/>
<Item id="46016" name="Standaard opmaak"/>
<Item id="46017" name="Windows Resource"/>
<Item id="46019" name="INI/INF"/>
<Item id="46033" name="Assembly"/>
<Item id="46080" name="Aangepast"/>
<Item id="46150" name="Syntaxismarkering ontwerpen..."/>
<Item id="47000" name="Over..."/>
<Item id="47001" name="Notepad++ website bezoeken"/>
<Item id="47002" name=" » Project"/>
<Item id="47003" name=" » Documentatie"/>
<Item id="47004" name=" » Forum"/>
<Item id="47005" name="Meer plugins zoeken"/>
<Item id="47006" name="Op updates controleren..."/>
<Item id="47008" name="Help"/>
<Item id="47009" name="Proxyserver-instellingen..."/>
<Item id="47011" name=" » Live support"/>
<Item id="48005" name="Plugin importeren..."/>
<Item id="48006" name="Thema importeren..."/>
<Item id="48009" name="Sneltoetsen..."/>
@ -378,6 +392,7 @@
<Item id="2032" name="Indeling"/>
<Item id="2033" name="Nummer invoegen"/>
<Item id="2035" name="Voorloopnullen"/>
<Item id="2036" name="Nummer herhalen:"/>
</ColumnEditor>
<StyleConfig title="Opmaak">
<Item id="1" name="&amp;Voorbeeld"/>
@ -441,10 +456,11 @@
<Item id="6119" name="Tabs in meerdere rijen weergeven"/>
<Item id="6120" name="Verticale tabs"/>
<Item id="6121" name="Menubalk"/>
<Item id="6122" name="Verbergen (Tonen met Alt of F10)"/>
<Item id="6122" name="Menubalk verbergen (Tonen met Alt of F10)"/>
<Item id="6123" name="Taal"/>
<Item id="6125" name="Documentenlijst"/>
<Item id="6126" name="Documentenlijst weergeven"/>
<Item id="6127" name="Kolom extensies verbergen"/>
</Global>
<Scintillas title="Weergave">
<Item id="6201" name="Gegevensstructuur"/>
@ -460,9 +476,10 @@
<Item id="6212" name="Lijn"/>
<Item id="6213" name="Achtergrond"/>
<Item id="6214" name="Actieve regel markeren"/>
<Item id="6215" name="ClearType inschakelen"/>
<Item id="6216" name="Aanwijzer"/>
<Item id="6217" name="Breedte:"/>
<Item id="6219" name="Knippersnelheid van aanwijzer:"/>
<Item id="6219" name="Knippersnelheid:"/>
<Item id="6221" name="0"/>
<Item id="6222" name="100"/>
<Item id="6224" name="Meervoudig bewerken"/>
@ -473,13 +490,14 @@
<Item id="6229" name="Uitlijnen"/>
<Item id="6230" name="Inspringen"/>
<Item id="6231" name="Breedte vensterrand"/>
<Item id="6234" name="Geavanceerd scrollen uitschakelen (ivm eventuele touchpadproblemen)"/>
</Scintillas>
<NewDoc title="Nieuw document">
<Item id="6401" name="Indeling"/>
<Item id="6402" name="Windows"/>
<Item id="6403" name="Unix"/>
<Item id="6404" name="Mac"/>
<Item id="6405" name="Codering"/>
<Item id="6405" name="Karakterset"/>
<Item id="6406" name="ANSI"/>
<Item id="6407" name="UTF-8 (zonder BOM)"/>
<Item id="6408" name="UTF-8"/>
@ -555,7 +573,6 @@
<Item id="6117" name="Volgorde van wisselen onthouden"/>
<Item id="6307" name="Wijzigingen detecteren"/>
<Item id="6308" name="Minimaliseren naar systeemvak"/>
<Item id="6309" name="Werkomgeving bewaren"/>
<Item id="6312" name="Document"/>
<Item id="6313" name="Automatisch bijwerken"/>
<Item id="6318" name="Hyperlinks"/>
@ -573,8 +590,16 @@
<Item id="6331" name="Alleen de bestandsnaam in de titelbalk weergeven"/>
<Item id="6332" name="Kapitalen onderscheiden"/>
<Item id="6333" name="Woorden markeren"/>
<Item id="6334" name="Karakterset automatisch detecteren"/>
<Item id="6335" name="\ als SQL escape character interpreteren"/>
</MISC>
<Backup title="Reservekopieën">
<Item id="6817" name="Werkomgeving"/>
<Item id="6818" name="Werkomgeving en aangebrachte wijzingen herstellen"/>
<Item id="6819" name="Informatie elke"/>
<Item id="6821" name="seconden bijwerken"/>
<Item id="6822" name="Map:"/>
<Item id="6309" name="Werkomgeving bewaren"/>
<Item id="6801" name="Reservekopieën"/>
<Item id="6315" name="Geen"/>
<Item id="6316" name="Standaard reservekopie"/>
@ -591,6 +616,7 @@
<Item id="6813" name="tekens"/>
<Item id="6814" name="Geldige invoer: 1 - 9"/>
<Item id="6815" name="Functie-argumenten weergeven tijdens typen"/>
<Item id="6816" name="Functies en woorden aanvullen"/>
<Item id="6851" name="Automatisch invoegen"/>
<Item id="6857" name="html/xml sluit-tag"/>
<Item id="6858" name="Begin"/>
@ -604,7 +630,7 @@
<Item id="6152" name="Werkomgeving openen in een nieuw venster"/>
<Item id="6153" name="Alle bestanden openen in een nieuw venster"/>
<Item id="6154" name="Alle bestanden openen in hetzelfde venster"/>
<Item id="6155" name="* Wijziging van deze instelling treedt in werking na het opnieuw starten van Notepad++."/>
<Item id="6155" name="* Wijziging van deze instelling treedt in werking na het opnieuw starten van Notepad++"/>
</MultiInstance>
<Delimiter title="Tekst selecteren">
<Item id="6251" name="Tekst selecteren tussen de volgende karakters (Ctrl + dubbelklik)"/>
@ -612,6 +638,12 @@
<Item id="6255" name="Einde"/>
<Item id="6256" name="Selecteer tekst over meerdere regels"/>
</Delimiter>
<Cloud title="Online opslag">
<Item id="6261" name="* Wijziging van deze instelling treedt in werking na het opnieuw starten van Notepad++"/>
<Item id="6262" name="Instellingen online opslaan"/>
<Item id="6263" name="Instellingen niet online opslaan"/>
<Item id="6267" name="Pad naar online opslag:"/>
</Cloud>
</Preference>
<Window title="Documenten">
<Item id="1" name="Activeren"/>
@ -810,6 +842,7 @@
<FileAlreadyOpenedInNpp title="Bestand is al geopend" message="Dit bestand is al geopend in Notepad++."/>
<DeleteFileFailed title="Bestand verwijderen mislukt" message="Er is een fout opgetreden bij het verwijderen van dit bestand."/>
<NbFileToOpenImportantWarning title="Bestand openen" message="$INT_REPLACE$ bestanden worden geopend.&#xD;&#xD;Doorgaan?"/>
<SettingsOnCloudError title="Online opslaan mislukt" message="Er is een fout opgetreden bij het schrijven naar de online opslaglocatie.\rControleer of het pad correct is opgegeven onder Voorkeuren."/>
</MessageBox>
<ClipboardHistory>
<PanelTitle name="Klembord"/>

View File

@ -792,9 +792,7 @@
<Cloud title="Cloud">
<Item id="6262" name="Settings on cloud"/>
<Item id="6263" name="No Cloud"/>
<Item id="6264" name="Dropbox"/>
<Item id="6265" name="OneDrive"/>
<Item id="6266" name="Google Drive"/>
<Item id="6267" name="Set your cloud location path here:"/>
<!--Item id="6261" name="Please restart Notepad++ to take effect."/-->
</Cloud>
@ -868,6 +866,7 @@
<!-- $INT_REPLACE$ is a place holder, don't translate it -->
<NbFileToOpenImportantWarning title="Amount of files to open is too large" message="$INT_REPLACE$ files are about to be opened.\rAre you sure to open them?"/>
<SettingsOnCloudError title="Settings on Cloud" message="It seems the path of settings on cloud is set on a read only drive,\ror on a folder needed privilege right for writting access.\rYour settings on cloud will be canceled. Please reset a coherent value via Preference dialog."/>
</MessageBox>
<ClipboardHistory>
<PanelTitle name="Clipboard History"/>

View File

@ -1,15 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
German localization for Notepad++ 6.7.8,
last modified 2015-05-28 by Jan Schreiber.
German localization for Notepad++ 6.7.9.x,
last modified 2015-07-10 by Jan Schreiber.
Please e-mail errors, suggestions etc. to janschreiber(at)users.sf.net,
or participate in the discussion in the sourceforge forum:
https://sourceforge.net/p/notepad-plus/discussion/558104/thread/ce46d9d8/
Please e-mail errors, suggestions etc. to janschreiber(at)users.sf.net.
The most recent version of this file can usually be downloaded from
https://drive.google.com/file/d/0B2khHHcwKI_hdlJ6Xy1tRUZNUFU/edit?usp=sharing
https://drive.google.com/open?id=0B2khHHcwKI_hck5NdlB2Rk5icDA&authuser=0
https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/installer/nativeLang/german.xml
-->
<NotepadPlus>
@ -161,8 +160,14 @@
<Item id="42056" name="Leerzeilen (auch mit &amp;Whitespace) löschen"/>
<Item id="42057" name="Leerzeile &amp;über aktueller Zeile einfügen"/>
<Item id="42058" name="Leerzeile u&amp;nter aktueller Zeile einfügen"/>
<Item id="42059" name="Zeilen au&amp;fsteigend sortieren"/>
<Item id="42060" name="Zeilen a&amp;bsteigend sortieren"/>
<Item id="42059" name="Zeilen alphabetisch au&amp;fsteigend sortieren"/>
<Item id="42060" name="Zeilen alphabetisch a&amp;bsteigend sortieren"/>
<Item id="42061" name="Zeilen als Integer aufsteigend sortieren"/>
<Item id="42062" name="Zeilen als Integer absteigend sortieren"/>
<Item id="42063" name="Zeilen als Dezimalzahlen (Komma) aufsteigend sortieren"/>
<Item id="42064" name="Zeilen als Dezimalzahlen (Komma) absteigend sortieren"/>
<Item id="42065" name="Zeilen als Dezimalzahlen (Punkt) aufsteigend sortieren"/>
<Item id="42066" name="Zeilen als Dezimalzahlen (Punkt) absteigend sortieren"/>
<Item id="43001" name="&amp;Suchen ..."/>
<Item id="43002" name="&amp;Weitersuchen"/>
<Item id="43003" name="&amp;Ersetzen ..."/>
@ -277,12 +282,13 @@
<Item id="46150" name="Eigene Sprache &amp;definieren ..."/>
<Item id="47000" name="&amp;Info ..."/>
<Item id="47001" name="Notepad++ im &amp;Web"/>
<Item id="47002" name="Notepad++ bei &amp;SourceForge"/>
<Item id="47004" name="&amp;Forum"/>
<Item id="47002" name="Notepad++ bei &amp;GitHub"/>
<Item id="47005" name="&amp;Erweiterungen"/>
<Item id="47006" name="Notepad++ aktualisieren"/>
<Item id="47008" name="In&amp;halt ..."/>
<Item id="47009" name="&amp;Proxy für Updater einstellen ..."/>
<Item id="47010" name="&amp;Kommandozeilenparameter ..."/>
<Item id="47011" name="&amp;Support im Chat"/>
<Item id="48005" name="&amp;Plugin(s) importieren ..."/>
<Item id="48006" name="&amp;Design(s) importieren ..."/>
<Item id="48009" name="&amp;Tastatur ..."/>
@ -941,4 +947,3 @@
</MessageBox>
</Native-Langue>
</NotepadPlus>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Hungarian Language created by György Bata -->
<!-- Email: batagy.ford kukac indamail pont hu -->
<!-- Email: batagy.ford kukac gmail pont com -->
<!-- Webpage: http://w3.hdsnet.hu/batagy/ -->
<!-- Forum topic: http://sourceforge.net/p/notepad-plus/discussion/558104/thread/50e2045c/ -->
<!-- For Notepad++ Version 6.7.7, modified 2015.05.01 -->
<!-- Forum topic: https://notepad-plus-plus.org/community/topic/80/hungarian-translation-->
<!-- For Notepad++ Version 6.8, modified 2015.07.22 -->
<NotepadPlus>
<Native-Langue name="Magyar" filename="hungarian.xml" version="6.7.7">
<Native-Langue name="Magyar" filename="hungarian.xml" version="6.8">
<Menu>
<Main>
<!-- Main Menu Entries -->
@ -91,6 +91,7 @@
<Item id="41015" name="Másolat mentése..."/>
<Item id="41016" name="Törlés a merevlemezről"/>
<Item id="41017" name="Átnevezés..."/>
<Item id="41021" name="Utoljára bezárt fájl megnyitása"/>
<Item id="42001" name="Kivágás"/>
<Item id="42002" name="Másolás"/>
@ -107,6 +108,14 @@
<Item id="42013" name="Sorok összevonása"/>
<Item id="42014" name="Aktuális sor mozgatása feljebb"/>
<Item id="42015" name="Aktuális sor mozgatása lejjebb"/>
<Item id="42059" name="Sorok rendezése betűrendben"/>
<Item id="42060" name="Sorok rendezése fordított betűrendben"/>
<Item id="42061" name="Sorok rendezése növekvő egészek szerint"/>
<Item id="42062" name="Sorok rendezése csökkenő egészek szerint"/>
<Item id="42063" name="Sorok rendezése növekvő tizedes számok szerint (Tizedesvessző)"/>
<Item id="42064" name="Sorok rendezése csökkenő tizedes számok szerint (Tizedesvessző)"/>
<Item id="42065" name="Sorok rendezése növekvő tizedes számok szerint (Tizedespont)"/>
<Item id="42066" name="Sorok rendezése csökkenő tizedes számok szerint (Tizedespont)"/>
<Item id="42016" name="Formázás nagybetűsre"/>
<Item id="42017" name="Formázás kisbetűsre"/>
<Item id="42018" name="Makró rögzítése"/>
@ -147,8 +156,6 @@
<Item id="42056" name="Üres sorok eltávolítása (Szóközt és tabulátort tartalmazókat is)"/>
<Item id="42057" name="Üres sor beszúrása a jelenlegi fölé"/>
<Item id="42058" name="Üres sor beszúrása a jelenlegi alá"/>
<Item id="42059" name="Sorok rendezése névsorrendben"/>
<Item id="42060" name="Sorok rendezése fordított névsorrendben"/>
<Item id="43001" name="Keresés..."/>
<Item id="43002" name="Következő keresése"/>
<Item id="43003" name="Csere..."/>
@ -199,6 +206,7 @@
<Item id="43047" name="Előző találat a találati ablakban"/>
<Item id="43048" name="Kijelölés és következő keresése"/>
<Item id="43049" name="Kijelölés és előző keresése"/>
<Item id="43054" name="Kiemelés..."/>
<Item id="44009" name="Ablakkeret nélküli nézet"/>
<Item id="44010" name="Minden blokk összecsukása"/>
<Item id="44012" name="Sorszámozás elrejtése"/>
@ -282,10 +290,9 @@
<Item id="47001" name="Notepad++ honlapja"/>
<Item id="47002" name="Notepad++ projekt oldal"/>
<Item id="47003" name="Online Súgó"/>
<Item id="47004" name="Fórum"/>
<Item id="47011" name="Élő üzenőfal támogatás"/>
<Item id="47005" name="További bővítmények"/>
<Item id="47006" name="Notepad++ frissítése"/>
<Item id="47008" name="Súgó..."/>
<Item id="47009" name="Proxy beállítások..."/>
<Item id="48005" name="Bővítmények importálása..."/>
<Item id="48006" name="Stílus témák importálása..."/>
@ -303,7 +310,6 @@
<Item id="42041" name="Előzmények törlése"/>
<Item id="48016" name="Billentyűparancs módosítása / Makró törlése..."/>
<Item id="48017" name="Billentyűparancs módosítása / Parancs törlése..."/>
<Item id="41021" name="Utoljára bezárt fájl megnyitása"/>
</Commands>
</Main>
<Splitter>
@ -633,6 +639,7 @@
<Item id="6127" name="Kiterjesztés oszlop tiltása"/>
</Global>
<Scintillas title="Megjelenítés beállításai">
<Item id="6215" name="Betűtípusok simítása"/>
<Item id="6216" name="Kurzor beállításai"/>
<Item id="6217" name="Szélesség:"/>
<Item id="6219" name="Villogás:"/>
@ -796,15 +803,15 @@
<Item id="6252" name="Nyitótag"/>
<Item id="6255" name="Zárótag"/>
<Item id="6256" name="Többsoros blokk engedélyezése"/>
<Item id="6257" name="bla bla bla bla bla"/>
<Item id="6258" name="bla bla bla bla bla bla bla bla bla bla bla"/>
</Delimiter>
<Cloud title="Felhő">
<Item id="6262" name="Felhő beállítások"/>
<Item id="6262" name="Beállítások tárolása felhőben"/>
<Item id="6263" name="Ne használjon felhőt"/>
<Item id="6264" name="Dropbox"/>
<Item id="6265" name="OneDrive"/>
<Item id="6266" name="Google Drive"/>
<!--Item id="6261" name="Az érvénybe léptetéshez a Notepad++ újraindítása szükséges."/-->
<Item id="6267" name="Felhőben tárolt beállítások elérési útja:"/>
<Item id="6261" name="Ehhez program újraindítás szükséges."/>
</Cloud>
<MISC title="Egyéb">
@ -856,6 +863,7 @@
<Item id="2030" name="Kezdő számérték:"/>
<Item id="2031" name="Növekmény:"/>
<Item id="2035" name="Bevezető nullák"/>
<Item id="2036" name="Ismétlés:"/>
<Item id="2032" name="Formátum"/>
<Item id="2024" name="Dec"/>
<Item id="2025" name="Oct"/>
@ -878,6 +886,7 @@
<!-- $INT_REPLACE$ is a place holder, don't translate it -->
<NbFileToOpenImportantWarning title="Túl sok fájl megnyitása" message = "$INT_REPLACE$ fájlt kíván megnyitni.&#x0A;&#x0A;Biztosan megnyitja mindet?"/>
<SettingsOnCloudError title="Beállítások tárolása felhőben" message="Úgy tűnik, a felhőben tárolt beállítások elérési útja írásvédett meghajtóra mutat,&#x0A;vagy pedig a megadott mappa módosításához nincs megfelelő írási jog.&#x0A;A felhő beállítások törlődtek. Adja meg a megfelelő értéket a Beállításokban."/>
</MessageBox>
<ClipboardHistory>
<PanelTitle name="Vágólap előzmények"/>

View File

@ -1,7 +1,7 @@
<?xml version = "1.0" encoding = "Windows-1252" ?>
<?xml version = "1.0" encoding = "utf-8" ?>
<!--
Italian translation for Notepad++ 6.7.3
Last modified Wed, January 2nd, 2015 by Luca Leonardi.
Italian translation for Notepad++ 6.7.9.2
Last modified Wed, July 03rd, 2015 by Luca Leonardi.
Please e-mail errors, suggestions etc. to ices_eyes(at)users.sourceforge.net.
For updates, see https://sourceforge.net/projects/notepad-plus/forums/forum/558104/topic/1853765
-->
@ -45,7 +45,7 @@
<Item subMenuId = "view-showSymbol" name = "Simboli" />
<Item subMenuId = "view-zoom" name = "Zoom" />
<Item subMenuId = "view-moveCloneDocument" name = "Sposta/Clona documento corrente" />
<Item subMenuId = "view-Tab" name = "Schede" />
<Item subMenuId = "view-tab" name = "Schede" />
<Item subMenuId = "view-collapseLevel" name = "Collassa livello" />
<Item subMenuId = "view-uncollapseLevel" name = "Non collassare livello" />
<Item subMenuId = "view-project" name = "Progetti" />
@ -91,6 +91,8 @@
<Item id = "41018" name = "Chiudi le schede a destra della corrente" />
<Item id = "41019" name = "Esplora risorse" />
<Item id = "41020" name = "Prompt dei comandi" />
<Item id = "41021" name = "Ripristina i file recenti" />
<Item id = "42001" name = "Tag&amp;lia" />
<Item id = "42002" name = "&amp;Copia" />
@ -112,9 +114,9 @@
<Item id = "42019" name = "&amp;Ferma registrazione" />
<Item id = "42020" name = "Inizio/Fine selezione" />
<Item id = "42021" name = "&amp;Esegui la macro" />
<Item id = "42022" name = "Commenta / Decommenta selezione" />
<Item id = "42023" name = "Commenta selezione" />
<Item id = "42024" name = "Elimina spazi vuoti superflui" />
<Item id = "42022" name = "Commenta / Decommenta singola riga" />
<Item id = "42023" name = "Commenta blocco" />
<Item id = "42024" name = "Elimina spazi a fine riga" />
<Item id = "42025" name = "Salva la macro registrata" />
<Item id = "42026" name = "Direzione del testo RTL" />
<Item id = "42027" name = "Direzione del testo LTR" />
@ -125,8 +127,8 @@
<Item id = "42032" name = "Esegui una macro più volte..." />
<Item id = "42033" name = "Pulisci il flag di sola lettura" />
<Item id = "42034" name = "Editor a colonne..." />
<Item id = "42035" name = "Commenta blocco (riga per riga)" />
<Item id = "42036" name = "Decommenta blocco (riga per riga)" />
<Item id = "42035" name = "Commenta singola riga" />
<Item id = "42036" name = "Decommenta singola riga" />
<Item id = "42037" name = "Modalità colonna..." />
<Item id = "42038" name = "Incolla contenuto HTML" />
<Item id = "42039" name = "Incolla contenuto RTF" />
@ -137,7 +139,7 @@
<Item id = "42044" name = "Converti EOL in Spazio" />
<Item id = "42045" name = "Rimuovi spazi e EOL non necessari" />
<Item id = "42046" name = "Converti TAB in spazi" />
<Item id = "42047" name = "Decommenta Flusso" />
<Item id = "42047" name = "Decommenta blocco" />
<Item id = "42048" name = "Copia contenuto binario" />
<Item id = "42049" name = "Taglia contenuto binario" />
<Item id = "42050" name = "Incolla contenuto binario" />
@ -151,6 +153,12 @@
<Item id = "42058" name = "Inserisci riga vuota sotto all'attuale" />
<Item id = "42059" name = "Ordina righe in modo crescente" />
<Item id = "42060" name = "Ordina righe in modo decrescente" />
<Item id = "42061" name = "Ordina righe come interi in modo crescente" />
<Item id = "42062" name = "Ordina righe come interi in modo decrescente" />
<Item id = "42063" name = "Ordina righe come valori decimali (virgola) in modo crescente" />
<Item id = "42064" name = "Ordina righe come valori decimali (virgola) in modo decrescente" />
<Item id = "42065" name = "Ordina righe come valori decimali (punto) in modo crescente" />
<Item id = "42066" name = "Ordina righe come valori decimali (punto) in modo decrescente" />
<Item id = "43001" name = "&amp;Trova..." />
<Item id = "43002" name = "Trova &amp;successivo" />
@ -259,6 +267,12 @@
<Item id = "45011" name = "Converti in UTF-8" />
<Item id = "45012" name = "Converti in UCS-2 Big Endian" />
<Item id = "45013" name = "Converti in UCS-2 Little Endian" />
<Item id = "45060" name = "Big5 (tradizionale)"/>
<Item id = "45061" name = "GB2312 (semplificato)"/>
<Item id = "45054" name = "OEM 861: Islandese"/>
<Item id = "45057" name = "OEM 865: Noedico"/>
<Item id = "45053" name = "OEM 860: Portoghese"/>
<Item id = "45056" name = "OEM 863: Francese"/>
<Item id = "10001" name = "Sposta nell&apos;altra vista" />
<Item id = "10002" name = "Copia nell&apos;altra vista" />
@ -270,18 +284,21 @@
<Item id = "46016" name = "Testo normale" />
<Item id = "46017" name = "File di risorse" />
<Item id = "46019" name = "File MS INI" />
<Item id = "46033" name = "Assembly"/>
<Item id = "46080" name = "Definito dall&apos;utente" />
<Item id = "46150" name = "Definisci il tuo linguaggio..." />
<Item id = "47000" name = "Informazioni su..." />
<Item id = "47001" name = "Sito web Notepad++" />
<Item id = "47002" name = "Progetto Notepad++ (Sourceforge.net)" />
<Item id = "47003" name = "Documentazione online" />
<Item id = "47004" name = "Forum" />
<Item id = "47005" name = "Ottieni altri plugin" />
<Item id = "47006" name = "Aggiorna Notepad++" />
<Item id = "47008" name = "Guida..." />
<Item id = "47009" name = "Imposta proxy aggiornamento..." />
<Item id = "47010" name = "Argomenti riga di comando..." />
<Item id = "47011" name = "Supporto Live"/>
<Item id = "48005" name = "Importa plugin..." />
<Item id = "48006" name = "Importa tema..." />
@ -746,7 +763,7 @@
<Item id = "6801" name = "Backup" />
<Item id = "6803" name = "Cartella:" />
<Item id = "6219" name = "Cartella di backup personalizzata:" />
<Item id = "6804" name = "Cartella di backup personalizzata:" />
<Item id = "6315" name = "Nessuno" />
<Item id = "6316" name = "Backup semplice" />
<Item id = "6317" name = "Backup dettagliato" />

View File

@ -5,17 +5,17 @@
<Main>
<!-- Main Menu Entries -->
<Entries>
<Item menuId="file" name="&amp;Файл"/>
<Item menuId="edit" name=&amp;равка"/>
<Item menuId="search" name="&amp;Поиск"/>
<Item menuId="view" name="&amp;Вид"/>
<Item menuId="encoding" name="&amp;Кодировки"/>
<Item menuId="language" name="&amp;Синтаксисы"/>
<Item menuId="settings" name="&amp;Опции"/>
<Item menuId="macro" name="&amp;Макросы"/>
<Item menuId="run" name="&amp;Запуск"/>
<Item idName="Plugins" name=&amp;лагины"/>
<Item idName="Window" name="Ок&amp;на"/>
<Item menuId="file" name="Файл"/>
<Item menuId="edit" name=равка"/>
<Item menuId="search" name="Поиск"/>
<Item menuId="view" name="Вид"/>
<Item menuId="encoding" name="Кодировки"/>
<Item menuId="language" name="Синтаксисы"/>
<Item menuId="settings" name="Опции"/>
<Item menuId="macro" name="Макросы"/>
<Item menuId="run" name="Запуск"/>
<Item idName="Plugins" name=лагины"/>
<Item idName="Window" name="Окна"/>
</Entries>
<!-- Sub Menu Entries -->
<SubEntries>
@ -66,8 +66,8 @@
<!-- all menu item -->
<Commands>
<Item id="1001" name="Распечатать!"/>
<Item id="41001" name="&amp;Новый"/>
<Item id="41002" name="&amp;Открыть"/>
<Item id="41001" name="Новый"/>
<Item id="41002" name="Открыть"/>
<Item id="41019" name="Открыть папку документа"/>
<Item id="41003" name="Закрыть"/>
<Item id="41004" name="Закрыть все"/>
@ -113,7 +113,7 @@
<Item id="42025" name="Сохранить запись в макрос..."/>
<Item id="42026" name="Текст справа Налево"/>
<Item id="42027" name="Текст слева Направо"/>
<Item id="42028" name="Только чтение"/>
<Item id="42028" name="Задать &quot;Только чтение&quot;"/>
<Item id="42029" name="Путь и Имя файла в буфер"/>
<Item id="42030" name="Имя файла в буфер"/>
<Item id="42031" name="Путь к файлу в буфер"/>
@ -144,8 +144,14 @@
<Item id="42056" name="Удалить Пустые Строки (Содер. символы Пробел)"/>
<Item id="42057" name="Вставить пустую строку Перед Текущей"/>
<Item id="42058" name="Вставить пустую строку После Текущей"/>
<Item id="42059" name="Сортировка Строки в порядке Возрастания"/>
<Item id="42060" name="Сортировка Строки в в порядке Убывания"/>
<Item id="42059" name="Сортировка по Возрастанию (По первой цифре)"/>
<Item id="42060" name="Сортировка по Убыванию (По первой цифре)"/>
<Item id="42061" name="Сортировка по Возрастанию целых чисел"/>
<Item id="42062" name="Сортировка по Убыванию целых чисел"/>
<Item id="42063" name="Сорт. по Возрастанию десятичных чисел (Запятая) "/>
<Item id="42064" name="Сорт. по Убыванию десятичных чисел (Запятая)"/>
<Item id="42065" name="Сорт. по Возрастанию десятичных чисел (Точка)"/>
<Item id="42066" name="Сорт. по Убыванию десятичных чисел (Точка)"/>
<Item id="43001" name="Найти..."/>
<Item id="43002" name="Искать далее"/>
<Item id="43003" name="Замена..."/>
@ -154,9 +160,9 @@
<Item id="43006" name="К следующей Закладке"/>
<Item id="43007" name="К предыдущей Закладке"/>
<Item id="43008" name="Убрать все Закладки"/>
<Item id="43009" name="Перейти к парной скобоке"/>
<Item id="43009" name="Перейти к парной скобке"/>
<Item id="43010" name="Искать ранее"/>
<Item id="43011" name="Поиск по мере &amp;набора..."/>
<Item id="43011" name="Поиск по мере набора..."/>
<Item id="43013" name="Найти в файлах"/>
<Item id="43014" name="Искать выделенное далее с Регистром"/>
<Item id="43015" name="Искать выделенное ранее с Регистром"/>
@ -266,11 +272,12 @@
<Item id="47002" name="Страница проекта Notepad++"/>
<Item id="47003" name="Интернет документация"/>
<Item id="47004" name="Форум"/>
<Item id="47005" name="Ещё плагины..."/>
<Item id="47005" name="Плагины..."/>
<Item id="47006" name="Обновить Notepad++"/>
<Item id="47008" name="Справка"/>
<Item id="47009" name="Задать Прокси Обновления..."/>
<Item id="47010" name="Параметры Командной Строки"/>
<Item id="47011" name="Поддержка Онлайн"/>
<Item id="48005" name="Импортировать Плагин(ы)"/>
<Item id="48006" name="Импортировать Тему(ы)"/>
<Item id="48009" name="Горячие клавиши..."/>
@ -304,7 +311,7 @@
<Item CMID="9" name="Путь к директории файла в буфер"/>
<Item CMID="10" name="Переименовать"/>
<Item CMID="11" name="Удалить файл (в корзину)"/>
<Item CMID="12" name="Только чтение"/>
<Item CMID="12" name="Задать &quot;Только чтение&quot;"/>
<Item CMID="13" name="Снять атрибут &quot;Только чтение&quot;"/>
<Item CMID="14" name="Переместить в Новый Экземпляр"/>
<Item CMID="15" name="Открыть в Новом Экземпляре"/>
@ -320,16 +327,16 @@
<Find title = "" titleFind = "Найти" titleReplace = "Заменить" titleFindInFiles = "Найти в файлах" titleMark="Пометки">
<Item id="1" name="Искать далее"/>
<Item id="2" name="Закрыть"/>
<Item id="1603" name="Только &amp;целые слова"/>
<Item id="1603" name="Только целые слова"/>
<Item id="1604" name="Учитывать регистр"/>
<Item id="1605" name="Регуляр. выражен."/>
<Item id="1606" name="Зациклить поиск"/>
<Item id="1608" name="&amp;Заменить"/>
<Item id="1609" name="Заменить &amp;всё"/>
<Item id="1608" name="Заменить"/>
<Item id="1609" name="Заменить всё"/>
<Item id="1611" name="Заменить на:"/>
<Item id="1612" name="Вверх"/>
<Item id="1613" name="Вниз"/>
<Item id="1614" name="По&amp;дсчитать"/>
<Item id="1614" name="Подсчитать"/>
<Item id="1615" name="Пометить все"/>
<Item id="1616" name="Помечать Закладкой"/>
<Item id="1617" name="Помечать найденное"/>
@ -338,7 +345,7 @@
<Item id="1621" name="Направление"/>
<Item id="1624" name="Режим поиска"/>
<Item id="1625" name="Обычный"/>
<Item id="1626" name="Рас&amp;ширенный (\n, \r, \t, \0, \x...)"/>
<Item id="1626" name="Расширенный (\n, \r, \t, \0, \x...)"/>
<Item id="1632" name="В выделенном"/>
<Item id="1633" name="Убрать все Пометки"/>
<Item id="1635" name="Заменить всё во всех Открытых Документах"/>
@ -350,12 +357,12 @@
<Item id="1656" name="Найти все"/>
<Item id="1658" name="Во всех подпапках"/>
<Item id="1659" name="В скрытых папках"/>
<Item id="1660" name="За&amp;менить в файлах"/>
<Item id="1660" name="Заменить в файлах"/>
<Item id="1661" name="След. за текущим док."/>
<Item id="1686" name="Прозрачность"/>
<Item id="1687" name="Когда неактивно"/>
<Item id="1688" name="Всегда"/>
<Item id="1703" name=&amp;новые строки"/>
<Item id="1703" name=новые строки"/>
</Find>
<GoToLine title= "К строке...">
<Item id="2007" name="Строка"/>
@ -503,7 +510,7 @@
<Item id="22313" name="Префикс режим"/>
<Item id="22413" name="Префикс режим"/>
</Keywords>
<Comment title="Комментарии &amp;и Числа">
<Comment title="Комментарии и Числа">
<Item id="23003" name="Положение линии комментариев"/>
<Item id="23004" name="Разрешить где угодно"/>
<Item id="23005" name="Разместить в начале строки"/>
@ -621,6 +628,7 @@
<Item id="6212" name="Линия"/>
<Item id="6213" name="Фон Текста"/>
<Item id="6214" name="Подсветка текущей строки"/>
<Item id="6215" name="Сглаживание шрифтов"/>
<Item id="6216" name="Текстовый Курсор"/>
<Item id="6217" name="Ширина"/>
<Item id="6219" name="Част. мерц.:"/>
@ -634,7 +642,7 @@
<Item id="6229" name="Выровненный"/>
<Item id="6230" name="С отступом"/>
<Item id="6231" name="Размер Рамки Окна"/>
<Item id="6234" name="Откл. расшир. функции прокрутки"/>
<Item id="6234" name="Откл. расшир. функции прокрутки&#x0A; (если есть проблемы с тачпадом)"/>
</Scintillas>
<NewDoc title = "Новый Документ">
<Item id="6401" name="Формат"/>
@ -710,8 +718,8 @@
<Item id="6429" name="Отображение"/>
<Item id="6424" name="В подменю"/>
<Item id="6425" name="Только Имя файла"/>
<Item id="6426" name="Полный Путь к файлу"/>
<Item id="6425" name="Только имя файла"/>
<Item id="6426" name="Полный путь к файлу"/>
<Item id="6427" name="Задать макс. длину:"/>
</RecentFilesHistory>
<MISC title = "Разное">
@ -759,10 +767,11 @@
<Cloud title="Облачное Хранение">
<Item id="6262" name="Настройки Облачного Хранения"/>
<Item id="6263" name="Без Облака"/>
<Item id="6264" name="Dropbox"/>
<Item id="6265" name="OneDrive"/>
<Item id="6266" name="Google Drive"/>
<!--Item id="6261" name="Please restart Notepad++ to take effect."/-->
<!--Item id="6264" name="Dropbox"/-->
<!--Item id="6265" name="OneDrive"/-->
<!--Item id="6266" name="Google Drive"/-->
<Item id="6267" name="Задать свой путь облачного хранения:"/>
<!--Item id="6261" name="Перезапустите Notepad++"/-->
</Cloud>
<Backup title = "Резерв. Копирование">
<Item id="6801" name="Резервное Копирование (при сохранении)"/>
@ -818,6 +827,7 @@
<Item id="2030" name="Исходное число:"/>
<Item id="2031" name="Увеличение на:"/>
<Item id="2035" name="Добав. 0 слева"/>
<Item id="2036" name="Повторить:"/>
<Item id="2032" name="Формат"/>
<Item id="2024" name="Десятич."/>
<Item id="2025" name="Восьм."/>
@ -850,7 +860,8 @@
<DeleteFileFailed title="Удаление файла" message="Не удалось удалить файл"/>
<!-- $INT_REPLACE$ is a place holder, don't translate it -->
<NbFileToOpenImportantWarning title="Очень большое количество файлов" message="$INT_REPLACE$ файлов скоро будут открыты.&#x0A;Продолжить?"/>
<NbFileToOpenImportantWarning title="Очень большое количество файлов" message="$INT_REPLACE$ файла(ов) будут открыты.&#x0A;Продолжить?"/>
<SettingsOnCloudError title="Параметры Облака" message="Похоже, что путь для облака указан на диск или папку с пометкой только для чтения.&#x0A;Вам необходимо открыть доступ или получить права на запись.&#x0A;Ваши параметры облака будут отменены. Пожалуйста сбросьте значение в окне Настройки..."/>
</MessageBox>
<ClipboardHistory>
<PanelTitle name="История Буфера"/>

View File

@ -792,9 +792,7 @@
<Cloud title="Bulut">
<Item id="6262" name="Ayarları Buluta Yedekle" />
<Item id="6263" name="Buluta yedekleme" />
<Item id="6264" name="Dropbox" />
<Item id="6265" name="OneDrive" />
<Item id="6266" name="Google Drive" />
<Item id="6267" name="Bulutunuzun konumunu ayarlayın:"/>
<!--Item id="6261" name="Değişikliklerin etkili olabilmesi için lütfen Notepad++ uygulamasını yeniden başlatın./-->
</Cloud>

File diff suppressed because it is too large Load Diff

View File

@ -36,10 +36,10 @@
; Define the application name
!define APPNAME "Notepad++"
!define APPVERSION "6.7.9.2"
!define APPVERSION "6.8"
!define APPNAMEANDVERSION "${APPNAME} v${APPVERSION}"
!define VERSION_MAJOR 6
!define VERSION_MINOR 792
!define VERSION_MINOR 8
!define APPWEBSITE "http://notepad-plus-plus.org/"
@ -489,6 +489,10 @@ Section -"Notepad++" mainSection
SetOverwrite off
File "..\bin\shortcuts.xml"
File "..\bin\SourceCodePro-Regular.ttf"
File "..\bin\SourceCodePro-Bold.ttf"
File "..\bin\SourceCodePro-It.ttf"
File "..\bin\SourceCodePro-BoldIt.ttf"
; Set Section Files and Shortcuts
SetOverwrite on
@ -624,6 +628,12 @@ Section -"Notepad++" mainSection
Rename "$INSTDIR\plugins\NppQCP.dll" "$INSTDIR\plugins\disabled\NppQCP.dll"
Delete "$INSTDIR\plugins\NppQCP.dll"
IfFileExists "$INSTDIR\plugins\DSpellCheck.dll" 0 +4
MessageBox MB_OK "Due to the stability issue,$\nDSpellCheck.dll will be moved to the directory $\"disabled$\"" /SD IDOK
Rename "$INSTDIR\plugins\DSpellCheck.dll" "$INSTDIR\plugins\disabled\DSpellCheck.dll"
Delete "$INSTDIR\plugins\DSpellCheck.dll"
; Context Menu Management : removing old version of Context Menu module
IfFileExists "$INSTDIR\nppcm.dll" 0 +3
Exec 'regsvr32 /u /s "$INSTDIR\nppcm.dll"'
@ -797,21 +807,6 @@ SectionGroupEnd
SectionGroup "Plugins" Plugins
SetOverwrite on
${MementoSection} "Spell-Checker" DSpellCheck
Delete "$INSTDIR\plugins\DSpellCheck.dll"
SetOutPath "$INSTDIR\plugins"
File "..\bin\plugins\DSpellCheck.dll"
SetOutPath "$UPDATE_PATH\plugins\Config"
SetOutPath "$INSTDIR\plugins\Config\Hunspell"
File "..\bin\plugins\Config\Hunspell\dictionary.lst"
File "..\bin\plugins\Config\Hunspell\en_GB.aff"
File "..\bin\plugins\Config\Hunspell\en_GB.dic"
File "..\bin\plugins\Config\Hunspell\README_en_GB.txt"
File "..\bin\plugins\Config\Hunspell\en_US.aff"
File "..\bin\plugins\Config\Hunspell\en_US.dic"
File "..\bin\plugins\Config\Hunspell\README_en_US.txt"
${MementoSectionEnd}
${MementoSection} "Npp FTP" NppFTP
Delete "$INSTDIR\plugins\NppFTP.dll"
SetOutPath "$INSTDIR\plugins"
@ -1955,7 +1950,6 @@ Section Uninstall
Delete "$INSTDIR\notepad++.exe"
Delete "$INSTDIR\readme.txt"
Delete "$INSTDIR\config.xml"
Delete "$INSTDIR\config.model.xml"
Delete "$INSTDIR\langs.xml"
@ -1969,6 +1963,10 @@ Section Uninstall
Delete "$INSTDIR\nativeLang.xml"
Delete "$INSTDIR\session.xml"
Delete "$INSTDIR\localization\english.xml"
Delete "$INSTDIR\SourceCodePro-Regular.ttf"
Delete "$INSTDIR\SourceCodePro-Bold.ttf"
Delete "$INSTDIR\SourceCodePro-It.ttf"
Delete "$INSTDIR\SourceCodePro-BoldIt.ttf"
SetShellVarContext current
Delete "$APPDATA\Notepad++\langs.xml"

View File

@ -47,6 +47,14 @@ copy /Y ..\bin\"notepad++.exe" .\minimalist\
If ErrorLevel 1 PAUSE
copy /Y ..\bin\SciLexer.dll .\minimalist\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-Regular.ttf .\minimalist\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-Bold.ttf .\minimalist\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-It.ttf .\minimalist\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-BoldIt.ttf .\minimalist\
If ErrorLevel 1 PAUSE
rem Notepad++ Unicode package
@ -87,25 +95,16 @@ copy /Y ..\bin\"notepad++.exe" .\zipped.package.release\
If ErrorLevel 1 PAUSE
copy /Y ..\bin\SciLexer.dll .\zipped.package.release\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-Regular.ttf .\zipped.package.release\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-Bold.ttf .\zipped.package.release\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-It.ttf .\zipped.package.release\
If ErrorLevel 1 PAUSE
copy /Y ..\src\fonts\sourceCodePro\SourceCodePro-BoldIt.ttf .\zipped.package.release\
If ErrorLevel 1 PAUSE
rem Plugins
copy /Y "..\bin\plugins\DSpellCheck.dll" .\zipped.package.release\plugins\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\dictionary.lst" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\en_GB.dic" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\en_GB.aff" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\README_en_GB.txt" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\en_US.dic" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\en_US.aff" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\Config\Hunspell\README_en_US.txt" .\zipped.package.release\plugins\Config\Hunspell\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\NppFTP.dll" .\zipped.package.release\plugins\
If ErrorLevel 1 PAUSE
copy /Y "..\bin\plugins\NppExport.dll" .\zipped.package.release\plugins\
@ -143,7 +142,7 @@ If ErrorLevel 1 PAUSE
If ErrorLevel 1 PAUSE
"C:\Program Files\7-Zip\7z.exe" a -r .\build\npp.bin.7z .\zipped.package.release\*
If ErrorLevel 1 PAUSE
"C:\Program Files (x86)\NSIS\Unicode\makensis.exe" nppSetup.nsi
IF EXIST "%PROGRAMFILES(X86)%" ("%PROGRAMFILES(x86)%\NSIS\Unicode\makensis.exe" nppSetup.nsi) ELSE ("%PROGRAMFILES%\NSIS\Unicode\makensis.exe" nppSetup.nsi)
@echo off

0
PowerEditor/misc/vistaIconTool/ChangeIcon.exe Normal file → Executable file
View File

View File

@ -0,0 +1,2 @@
This file (scintilla.original.forUpdating.7z) is the original Scintilla release of current Scintilla.
While updating a new version of scintilla, this scintilla will be compared with Notepad++'s scitilla, in order to get the patch for adding it into new scintilla release.

View File

@ -44,12 +44,14 @@ void printInt(int int2print)
TCHAR str[32];
wsprintf(str, TEXT("%d"), int2print);
::MessageBox(NULL, str, TEXT(""), MB_OK);
};
}
void printStr(const TCHAR *str2print)
{
::MessageBox(NULL, str2print, TEXT(""), MB_OK);
};
}
std::string getFileContent(const TCHAR *file2read)
{
@ -59,7 +61,8 @@ std::string getFileContent(const TCHAR *file2read)
FILE *fp = generic_fopen(file2read, TEXT("rb"));
size_t lenFile = 0;
do {
do
{
lenFile = fread(data, 1, blockSize - 1, fp);
if (lenFile <= 0) break;
@ -69,8 +72,8 @@ std::string getFileContent(const TCHAR *file2read)
data[lenFile] = '\0';
wholeFileContent += data;
} while (lenFile > 0);
}
while (lenFile > 0);
fclose(fp);
return wholeFileContent;
@ -90,6 +93,7 @@ char getDriveLetter()
return drive;
}
generic_string relativeFilePathToFullFilePath(const TCHAR *relativeFilePath)
{
generic_string fullFilePathName = TEXT("");
@ -114,6 +118,7 @@ generic_string relativeFilePathToFullFilePath(const TCHAR *relativeFilePath)
return fullFilePathName;
}
void writeFileContent(const TCHAR *file2write, const char *content2write)
{
FILE *f = generic_fopen(file2write, TEXT("w+"));
@ -122,6 +127,7 @@ void writeFileContent(const TCHAR *file2write, const char *content2write)
fclose(f);
}
void writeLog(const TCHAR *logFileName, const char *log2write)
{
FILE *f = generic_fopen(logFileName, TEXT("a+"));
@ -131,6 +137,7 @@ void writeLog(const TCHAR *logFileName, const char *log2write)
fclose(f);
}
// Set a call back with the handle after init to set the path.
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/callbackfunctions/browsecallbackproc.asp
static int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM, LPARAM pData)
@ -140,6 +147,7 @@ static int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM, LPARAM pDa
return 0;
};
void folderBrowser(HWND parent, int outputCtrlID, const TCHAR *defaultStr)
{
// This code was copied and slightly modifed from:
@ -245,9 +253,11 @@ void ClientRectToScreenRect(HWND hWnd, RECT* rect)
::ClientToScreen( hWnd, &pt );
rect->right = pt.x;
rect->bottom = pt.y;
};
}
std::vector<generic_string> tokenizeString(const generic_string & tokenString, const char delim) {
std::vector<generic_string> tokenizeString(const generic_string & tokenString, const char delim)
{
//Vector is created on stack and copied on return
std::vector<generic_string> tokens;
@ -268,6 +278,7 @@ std::vector<generic_string> tokenizeString(const generic_string & tokenString, c
return tokens;
}
void ScreenRectToClientRect(HWND hWnd, RECT* rect)
{
POINT pt;
@ -283,7 +294,8 @@ void ScreenRectToClientRect(HWND hWnd, RECT* rect)
::ScreenToClient( hWnd, &pt );
rect->right = pt.x;
rect->bottom = pt.y;
};
}
int filter(unsigned int code, struct _EXCEPTION_POINTERS *)
{
@ -293,7 +305,9 @@ int filter(unsigned int code, struct _EXCEPTION_POINTERS *)
return EXCEPTION_CONTINUE_SEARCH;
}
bool isInList(const TCHAR *token, const TCHAR *list) {
bool isInList(const TCHAR *token, const TCHAR *list)
{
if ((!token) || (!list))
return false;
TCHAR word[64];
@ -347,7 +361,8 @@ generic_string purgeMenuItemString(const TCHAR * menuItemStr, bool keepAmpersand
}
cleanedName[j] = 0;
return cleanedName;
};
}
const wchar_t * WcharMbcsConvertor::char2wchar(const char * mbcs2Convert, UINT codepage, int lenMbcs, int *pLenWc, int *pBytesNotProcessed)
{
@ -366,7 +381,7 @@ const wchar_t * WcharMbcsConvertor::char2wchar(const char * mbcs2Convert, UINT c
lenWc = MultiByteToWideChar(codepage, 0, mbcs2Convert, lenMbcs, NULL, 0);
}
// Otherwise, test if we are cutting a multi-byte character at end of buffer
else if(lenMbcs != -1 && codepage == CP_UTF8) // For UTF-8, we know how to test it
else if (lenMbcs != -1 && codepage == CP_UTF8) // For UTF-8, we know how to test it
{
int indexOfLastChar = Utf8::characterStart(mbcs2Convert, lenMbcs-1); // get index of last character
if (indexOfLastChar != 0 && !Utf8::isValid(mbcs2Convert+indexOfLastChar, lenMbcs-indexOfLastChar)) // if it is not valid we do not process it right now (unless its the only character in string, to ensure that we always progress, e.g. that bytesNotProcessed < lenMbcs)
@ -404,11 +419,12 @@ const wchar_t * WcharMbcsConvertor::char2wchar(const char * mbcs2Convert, UINT c
else
_wideCharStr.empty();
if(pLenWc) *pLenWc = lenWc;
if(pBytesNotProcessed) *pBytesNotProcessed = bytesNotProcessed;
if (pLenWc) *pLenWc = lenWc;
if (pBytesNotProcessed) *pBytesNotProcessed = bytesNotProcessed;
return _wideCharStr;
}
// "mstart" and "mend" are pointers to indexes in mbcs2Convert,
// which are converted to the corresponding indexes in the returned wchar_t string.
const wchar_t * WcharMbcsConvertor::char2wchar(const char * mbcs2Convert, UINT codepage, int *mstart, int *mend)
@ -442,6 +458,7 @@ const wchar_t * WcharMbcsConvertor::char2wchar(const char * mbcs2Convert, UINT c
return _wideCharStr;
}
const char * WcharMbcsConvertor::wchar2char(const wchar_t * wcharStr2Convert, UINT codepage, int lenWc, int *pLenMbcs)
{
// Do not process NULL pointer
@ -456,10 +473,12 @@ const char * WcharMbcsConvertor::wchar2char(const wchar_t * wcharStr2Convert, UI
else
_multiByteStr.empty();
if(pLenMbcs) *pLenMbcs = lenMbcs;
if (pLenMbcs)
*pLenMbcs = lenMbcs;
return _multiByteStr;
}
const char * WcharMbcsConvertor::wchar2char(const wchar_t * wcharStr2Convert, UINT codepage, long *mstart, long *mend)
{
// Do not process NULL pointer
@ -488,10 +507,11 @@ const char * WcharMbcsConvertor::wchar2char(const wchar_t * wcharStr2Convert, UI
return _multiByteStr;
}
std::wstring string2wstring(const std::string & rString, UINT codepage)
{
int len = MultiByteToWideChar(codepage, 0, rString.c_str(), -1, NULL, 0);
if(len > 0)
if (len > 0)
{
std::vector<wchar_t> vw(len);
MultiByteToWideChar(codepage, 0, rString.c_str(), -1, &vw[0], len);
@ -504,7 +524,7 @@ std::wstring string2wstring(const std::string & rString, UINT codepage)
std::string wstring2string(const std::wstring & rwString, UINT codepage)
{
int len = WideCharToMultiByte(codepage, 0, rwString.c_str(), -1, NULL, 0, NULL, NULL);
if(len > 0)
if (len > 0)
{
std::vector<char> vw(len);
WideCharToMultiByte(codepage, 0, rwString.c_str(), -1, &vw[0], len, NULL, NULL);
@ -614,6 +634,7 @@ generic_string BuildMenuFileName(int filenameLen, unsigned int pos, const generi
return strTemp;
}
generic_string PathRemoveFileSpec(generic_string & path)
{
generic_string::size_type lastBackslash = path.find_last_of(TEXT('\\'));
@ -636,6 +657,7 @@ generic_string PathRemoveFileSpec(generic_string & path)
return path;
}
generic_string PathAppend(generic_string &strDest, const generic_string & str2append)
{
if (strDest == TEXT("") && str2append == TEXT("")) // "" + ""
@ -671,6 +693,7 @@ generic_string PathAppend(generic_string &strDest, const generic_string & str2ap
return strDest;
}
COLORREF getCtrlBgColor(HWND hWnd)
{
COLORREF crRet = CLR_INVALID;
@ -709,12 +732,14 @@ COLORREF getCtrlBgColor(HWND hWnd)
return crRet;
}
generic_string stringToUpper(generic_string strToConvert)
{
std::transform(strToConvert.begin(), strToConvert.end(), strToConvert.begin(), ::toupper);
return strToConvert;
}
generic_string stringReplace(generic_string subject, const generic_string& search, const generic_string& replace)
{
size_t pos = 0;
@ -726,6 +751,7 @@ generic_string stringReplace(generic_string subject, const generic_string& searc
return subject;
}
std::vector<generic_string> stringSplit(const generic_string& input, const generic_string& delimiter)
{
auto start = 0U;
@ -742,6 +768,7 @@ std::vector<generic_string> stringSplit(const generic_string& input, const gener
return output;
}
generic_string stringJoin(const std::vector<generic_string>& strings, const generic_string& separator)
{
generic_string joined;
@ -757,6 +784,7 @@ generic_string stringJoin(const std::vector<generic_string>& strings, const gene
return joined;
}
generic_string stringTakeWhileAdmissable(const generic_string& input, const generic_string& admissable)
{
// Find first non-admissable character in "input", and remove everything after it.
@ -771,6 +799,7 @@ generic_string stringTakeWhileAdmissable(const generic_string& input, const gene
}
}
double stodLocale(const generic_string& str, _locale_t loc, size_t* idx)
{
// Copied from the std::stod implementation but uses _wcstod_l instead of wcstod.
@ -833,3 +862,6 @@ bool str2Clipboard(const generic_string &str2cpy, HWND hwnd)
}
return true;
}

View File

@ -134,19 +134,20 @@ public:
};
protected:
WcharMbcsConvertor() {
};
~WcharMbcsConvertor() {
};
WcharMbcsConvertor() {}
~WcharMbcsConvertor() {}
static WcharMbcsConvertor * _pSelf;
template <class T>
class StringBuffer {
class StringBuffer
{
public:
StringBuffer() : _str(0), _allocLen(0) { }
~StringBuffer() { if(_allocLen) delete [] _str; }
void sizeTo(size_t size) {
void sizeTo(size_t size)
{
if(_allocLen < size)
{
if(_allocLen) delete[] _str;
@ -154,7 +155,8 @@ protected:
_str = new T[_allocLen];
}
}
void empty() {
void empty()
{
static T nullStr = 0; // routines may return an empty string, with null terminator, without allocating memory; a pointer to this null character will be returned in that case
if(_allocLen == 0)
_str = &nullStr;
@ -176,9 +178,10 @@ protected:
private:
// Since there's no public ctor, we need to void the default assignment operator.
WcharMbcsConvertor& operator= (const WcharMbcsConvertor&);
};
#define MACRO_RECORDING_IN_PROGRESS 1
#define MACRO_RECORDING_HAS_STOPPED 2

View File

@ -35,11 +35,13 @@
#include "Win32Exception.h"
Win32Exception::Win32Exception(EXCEPTION_POINTERS * info) {
Win32Exception::Win32Exception(EXCEPTION_POINTERS * info)
{
_location = info->ExceptionRecord->ExceptionAddress;
_code = info->ExceptionRecord->ExceptionCode;
_info = info;
switch (_code) {
switch (_code)
{
case EXCEPTION_ACCESS_VIOLATION:
_event = "Access violation";
break;
@ -52,17 +54,21 @@ Win32Exception::Win32Exception(EXCEPTION_POINTERS * info) {
}
}
void Win32Exception::installHandler() {
void Win32Exception::installHandler()
{
_set_se_translator(Win32Exception::translate);
}
void Win32Exception::removeHandler() {
void Win32Exception::removeHandler()
{
_set_se_translator(NULL);
}
void Win32Exception::translate(unsigned code, EXCEPTION_POINTERS * info) {
void Win32Exception::translate(unsigned code, EXCEPTION_POINTERS * info)
{
// Windows guarantees that *(info->ExceptionRecord) is valid
switch (code) {
switch (code)
{
case EXCEPTION_ACCESS_VIOLATION:
throw Win32AccessViolation(info);
break;
@ -71,7 +77,12 @@ void Win32Exception::translate(unsigned code, EXCEPTION_POINTERS * info) {
}
}
Win32AccessViolation::Win32AccessViolation(EXCEPTION_POINTERS * info) : Win32Exception(info) {
Win32AccessViolation::Win32AccessViolation(EXCEPTION_POINTERS * info)
: Win32Exception(info)
{
_isWrite = info->ExceptionRecord->ExceptionInformation[0] == 1;
_badAddress = reinterpret_cast<ExceptionAddress>(info->ExceptionRecord->ExceptionInformation[1]);
}

View File

@ -44,10 +44,10 @@ class Win32Exception : public std::exception
public:
static void installHandler();
static void removeHandler();
virtual const char* what() const throw() { return _event; };
ExceptionAddress where() const { return _location; };
unsigned int code() const { return _code; };
EXCEPTION_POINTERS* info() const { return _info; };
virtual const char* what() const throw() { return _event; }
ExceptionAddress where() const { return _location; }
unsigned int code() const { return _code; }
EXCEPTION_POINTERS* info() const { return _info; }
protected:
Win32Exception(EXCEPTION_POINTERS * info); //Constructor only accessible by exception handler
@ -61,11 +61,12 @@ private:
EXCEPTION_POINTERS * _info;
};
class Win32AccessViolation: public Win32Exception
{
public:
bool isWrite() const { return _isWrite; };
ExceptionAddress badAddress() const { return _badAddress; };
bool isWrite() const { return _isWrite; }
ExceptionAddress badAddress() const { return _badAddress; }
private:
Win32AccessViolation(EXCEPTION_POINTERS * info);

View File

@ -31,10 +31,13 @@
typedef std::vector<generic_string> stringVector;
class FileNameStringSplitter
{
public :
FileNameStringSplitter(const TCHAR *fileNameStr) {
public:
FileNameStringSplitter(const TCHAR *fileNameStr)
{
//if (!fileNameStr) return;
TCHAR *pStr = NULL;
bool isInsideQuotes = false;
@ -43,6 +46,7 @@ public :
TCHAR str[filePathLength];
int i = 0;
bool fini = false;
for (pStr = (TCHAR *)fileNameStr ; !fini ; )
{
if (i >= filePathLength)
@ -50,7 +54,8 @@ public :
switch (*pStr)
{
case '"' :
case '"':
{
if (isInsideQuotes)
{
str[i] = '\0';
@ -61,8 +66,10 @@ public :
isInsideQuotes = !isInsideQuotes;
pStr++;
break;
}
case ' ' :
case ' ':
{
if (isInsideQuotes)
{
str[i] = *pStr;
@ -77,34 +84,41 @@ public :
}
pStr++;
break;
}
case '\0' :
case '\0':
{
str[i] = *pStr;
if (str[0])
_fileNames.push_back(generic_string(str));
fini = true;
break;
}
default :
{
str[i] = *pStr;
i++; pStr++;
break;
}
}
};
}
}
const TCHAR * getFileName(size_t index) const {
if (index >= _fileNames.size())
return NULL;
return _fileNames[index].c_str();
};
}
int size() const {
return int(_fileNames.size());
};
}
private :
stringVector _fileNames;
};
#endif //FILENAME_STRING_SPLITTER_H

View File

@ -405,6 +405,9 @@ enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV
// INT NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR(0, 0)
// Return: current editor default background color. You should convert the returned value in COLORREF
#define NPPM_SETSMOOTHFONT (NPPMSG + 92)
// VOID NPPM_SETSMOOTHFONT(0, BOOL setSmoothFontOrNot)
#define RUNCOMMAND_USER (WM_USER + 3000)
#define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH)

View File

@ -41,7 +41,8 @@ const int nbChar = 64;
typedef const TCHAR * (__cdecl * PFUNCGETNAME)();
struct NppData {
struct NppData
{
HWND _nppHandle;
HWND _scintillaMainHandle;
HWND _scintillaSecondHandle;
@ -53,14 +54,16 @@ typedef void (__cdecl * PBENOTIFIED)(SCNotification *);
typedef LRESULT (__cdecl * PMESSAGEPROC)(UINT Message, WPARAM wParam, LPARAM lParam);
struct ShortcutKey {
struct ShortcutKey
{
bool _isCtrl;
bool _isAlt;
bool _isShift;
UCHAR _key;
};
struct FuncItem {
struct FuncItem
{
TCHAR _itemName[nbChar];
PFUNCPLUGINCMD _pFunc;
int _cmdID;

View File

@ -35,6 +35,10 @@ using namespace std;
const TCHAR * USERMSG = TEXT("This plugin is not compatible with current version of Notepad++.\n\n\
Do you want to remove this plugin from plugins directory to prevent this message from the next launch time?");
bool PluginsManager::unloadPlugin(int index, HWND nppHandle)
{
SCNotification scnN;
@ -58,6 +62,7 @@ bool PluginsManager::unloadPlugin(int index, HWND nppHandle)
return true;
}
int PluginsManager::loadPlugin(const TCHAR *pluginFilePath, vector<generic_string> & dll2Remove)
{
const TCHAR *pluginFileName = ::PathFindFileName(pluginFilePath);
@ -65,7 +70,8 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath, vector<generic_strin
return 0;
PluginInfo *pi = new PluginInfo;
try {
try
{
pi->_moduleName = PathFindFileName(pluginFilePath);
pi->_hLib = ::LoadLibrary(pluginFilePath);
@ -175,8 +181,10 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath, vector<generic_strin
}
for (int x = 0; x < numLexers; ++x) // postpone adding in case the xml is missing/corrupt
{
if (containers[x] != NULL)
nppParams->addExternalLangToEnd(containers[x]);
}
nppParams->getExternalLexerFromXmlTree(pXmlDoc);
nppParams->getExternalLexerDoc()->push_back(pXmlDoc);
@ -187,10 +195,14 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath, vector<generic_strin
addInLoadedDlls(pluginFileName);
_pluginInfos.push_back(pi);
return (_pluginInfos.size() - 1);
} catch(std::exception e) {
}
catch (std::exception e)
{
::MessageBoxA(NULL, e.what(), "Exception", MB_OK);
return -1;
} catch(generic_string s) {
}
catch (generic_string s)
{
s += TEXT("\n\n");
s += USERMSG;
if (::MessageBox(NULL, s.c_str(), pluginFilePath, MB_YESNO) == IDYES)
@ -199,7 +211,9 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath, vector<generic_strin
}
delete pi;
return -1;
} catch(...) {
}
catch (...)
{
generic_string msg = TEXT("Failed to load");
msg += TEXT("\n\n");
msg += USERMSG;
@ -366,11 +380,16 @@ void PluginsManager::runPluginCommand(size_t i)
{
if (_pluginsCommands[i]._pFunc != NULL)
{
try {
try
{
_pluginsCommands[i]._pFunc();
} catch(std::exception e) {
}
catch (std::exception e)
{
::MessageBoxA(NULL, e.what(), "PluginsManager::runPluginCommand Exception", MB_OK);
} catch (...) {
}
catch (...)
{
TCHAR funcInfo[128];
generic_sprintf(funcInfo, TEXT("runPluginCommand(size_t i : %d)"), i);
pluginCrashAlert(_pluginsCommands[i]._pluginName.c_str(), funcInfo);
@ -388,11 +407,16 @@ void PluginsManager::runPluginCommand(const TCHAR *pluginName, int commandID)
{
if (_pluginsCommands[i]._funcID == commandID)
{
try {
try
{
_pluginsCommands[i]._pFunc();
} catch(std::exception e) {
}
catch (std::exception e)
{
::MessageBoxA(NULL, e.what(), "Exception", MB_OK);
} catch (...) {
}
catch (...)
{
TCHAR funcInfo[128];
generic_sprintf(funcInfo, TEXT("runPluginCommand(const TCHAR *pluginName : %s, int commandID : %d)"), pluginName, commandID);
pluginCrashAlert(_pluginsCommands[i]._pluginName.c_str(), funcInfo);
@ -402,6 +426,7 @@ void PluginsManager::runPluginCommand(const TCHAR *pluginName, int commandID)
}
}
void PluginsManager::notify(const SCNotification *notification)
{
for (size_t i = 0, len = _pluginInfos.size() ; i < len ; ++i)
@ -411,11 +436,16 @@ void PluginsManager::notify(const SCNotification *notification)
// To avoid the plugin change the data in SCNotification
// Each notification to pass to a plugin is a copy of SCNotification instance
SCNotification scNotif = *notification;
try {
try
{
_pluginInfos[i]->_pBeNotified(&scNotif);
} catch(std::exception e) {
}
catch (std::exception e)
{
::MessageBoxA(NULL, e.what(), "Exception", MB_OK);
} catch (...) {
}
catch (...)
{
TCHAR funcInfo[128];
generic_sprintf(funcInfo, TEXT("notify(SCNotification *notification) : \r notification->nmhdr.code == %d\r notification->nmhdr.hwndFrom == %p\r notification->nmhdr.idFrom == %d"),\
scNotif.nmhdr.code, scNotif.nmhdr.hwndFrom, scNotif.nmhdr.idFrom);
@ -425,17 +455,23 @@ void PluginsManager::notify(const SCNotification *notification)
}
}
void PluginsManager::relayNppMessages(UINT Message, WPARAM wParam, LPARAM lParam)
{
for (size_t i = 0, len = _pluginInfos.size(); i < len ; ++i)
{
if (_pluginInfos[i]->_hLib)
{
try {
try
{
_pluginInfos[i]->_pMessageProc(Message, wParam, lParam);
} catch(std::exception e) {
}
catch (std::exception e)
{
::MessageBoxA(NULL, e.what(), "Exception", MB_OK);
} catch (...) {
}
catch (...)
{
TCHAR funcInfo[128];
generic_sprintf(funcInfo, TEXT("relayNppMessages(UINT Message : %d, WPARAM wParam : %d, LPARAM lParam : %d)"), Message, wParam, lParam);
pluginCrashAlert(_pluginsCommands[i]._pluginName.c_str(), TEXT(""));
@ -444,6 +480,7 @@ void PluginsManager::relayNppMessages(UINT Message, WPARAM wParam, LPARAM lParam
}
}
bool PluginsManager::relayPluginMessages(UINT Message, WPARAM wParam, LPARAM lParam)
{
const TCHAR * moduleName = (const TCHAR *)wParam;
@ -456,11 +493,16 @@ bool PluginsManager::relayPluginMessages(UINT Message, WPARAM wParam, LPARAM lPa
{
if (_pluginInfos[i]->_hLib)
{
try {
try
{
_pluginInfos[i]->_pMessageProc(Message, wParam, lParam);
} catch(std::exception e) {
}
catch (std::exception e)
{
::MessageBoxA(NULL, e.what(), "Exception", MB_OK);
} catch (...) {
}
catch (...)
{
TCHAR funcInfo[128];
generic_sprintf(funcInfo, TEXT("relayPluginMessages(UINT Message : %d, WPARAM wParam : %d, LPARAM lParam : %d)"), Message, wParam, lParam);
pluginCrashAlert(_pluginsCommands[i]._pluginName.c_str(), funcInfo);
@ -498,3 +540,4 @@ bool PluginsManager::allocateMarker(int numberRequired, int *start)
}
return retVal;
}

View File

@ -47,24 +47,27 @@
typedef BOOL (__cdecl * PFUNCISUNICODE)();
struct PluginCommand {
struct PluginCommand
{
generic_string _pluginName;
int _funcID;
PFUNCPLUGINCMD _pFunc;
PluginCommand(const TCHAR *pluginName, int funcID, PFUNCPLUGINCMD pFunc): _funcID(funcID), _pFunc(pFunc), _pluginName(pluginName){};
};
struct PluginInfo {
struct PluginInfo
{
PluginInfo() :_hLib(NULL), _pluginMenu(NULL), _pFuncSetInfo(NULL),\
_pFuncGetFuncsArray(NULL), _pFuncGetName(NULL), _funcItems(NULL),\
_nbFuncItem(0){};
~PluginInfo(){
_nbFuncItem(0){}
~PluginInfo()
{
if (_pluginMenu)
::DestroyMenu(_pluginMenu);
if (_hLib)
::FreeLibrary(_hLib);
};
}
HINSTANCE _hLib;
HMENU _pluginMenu;
@ -81,21 +84,24 @@ struct PluginInfo {
generic_string _moduleName;
};
class PluginsManager {
class PluginsManager
{
public:
PluginsManager() : _hPluginsMenu(NULL), _isDisabled(false), _dynamicIDAlloc(ID_PLUGINS_CMD_DYNAMIC, ID_PLUGINS_CMD_DYNAMIC_LIMIT),
_markerAlloc(MARKER_PLUGINS, MARKER_PLUGINS_LIMIT) {};
~PluginsManager() {
_markerAlloc(MARKER_PLUGINS, MARKER_PLUGINS_LIMIT) {}
~PluginsManager()
{
for (size_t i = 0, len = _pluginInfos.size(); i < len; ++i)
delete _pluginInfos[i];
if (_hPluginsMenu)
DestroyMenu(_hPluginsMenu);
};
void init(const NppData & nppData) {
}
void init(const NppData & nppData)
{
_nppData = nppData;
};
}
int loadPlugin(const TCHAR *pluginFilePath, std::vector<generic_string> & dll2Remove);
bool loadPlugins(const TCHAR *dir = NULL);
@ -113,12 +119,10 @@ public:
void relayNppMessages(UINT Message, WPARAM wParam, LPARAM lParam);
bool relayPluginMessages(UINT Message, WPARAM wParam, LPARAM lParam);
HMENU getMenuHandle() {
return _hPluginsMenu;
};
HMENU getMenuHandle() const { return _hPluginsMenu; }
void disable() {_isDisabled = true;};
bool hasPlugins(){return (_pluginInfos.size()!= 0);};
void disable() {_isDisabled = true;}
bool hasPlugins() {return (_pluginInfos.size()!= 0);}
bool allocateCmdID(int numberRequired, int *start);
bool inDynamicRange(int id) { return _dynamicIDAlloc.isInRange(id); }
@ -135,22 +139,26 @@ private:
bool _isDisabled;
IDAllocator _dynamicIDAlloc;
IDAllocator _markerAlloc;
void pluginCrashAlert(const TCHAR *pluginName, const TCHAR *funcSignature) {
void pluginCrashAlert(const TCHAR *pluginName, const TCHAR *funcSignature)
{
generic_string msg = pluginName;
msg += TEXT(" just crash in\r");
msg += funcSignature;
::MessageBox(NULL, msg.c_str(), TEXT(" just crash in\r"), MB_OK|MB_ICONSTOP);
};
bool isInLoadedDlls(const TCHAR *fn) const {
}
bool isInLoadedDlls(const TCHAR *fn) const
{
for (size_t i = 0; i < _loadedDlls.size(); ++i)
if (generic_stricmp(fn, _loadedDlls[i].c_str()) == 0)
return true;
return false;
};
}
void addInLoadedDlls(const TCHAR *fn) {
_loadedDlls.push_back(fn);
};
}
};
#define EXT_LEXER_DECL __stdcall

View File

@ -35,7 +35,7 @@ class Process
{
public:
Process(const TCHAR *cmd, const TCHAR *args, const TCHAR *cDir)
:_command(cmd), _args(args), _curDir(cDir){};
:_command(cmd), _args(args), _curDir(cDir){}
void run();

View File

@ -30,6 +30,9 @@
#include "process.h"
//#include "SysMsg.h"
BOOL Process::run()
{
BOOL result = TRUE;
@ -47,7 +50,8 @@ BOOL Process::run()
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE }; // inheritable handle
try {
try
{
// Create stdout pipe
if (!::CreatePipe(&_hPipeOutR, &hPipeOutW, &sa, 0))
error(TEXT("CreatePipe"), result, 1000);
@ -80,15 +84,15 @@ BOOL Process::run()
_hProcess = procinfo.hProcess;
_hProcessThread = procinfo.hThread;
if(!started)
if (!started)
error(TEXT("CreateProcess"), result, 1002);
hListenerEvent[0] = ::CreateEvent(NULL, FALSE, FALSE, TEXT("listenerEvent"));
if(!hListenerEvent[0])
if (!hListenerEvent[0])
error(TEXT("CreateEvent"), result, 1003);
hListenerEvent[1] = ::CreateEvent(NULL, FALSE, FALSE, TEXT("listenerStdErrEvent"));
if(!hListenerEvent[1])
if (!hListenerEvent[1])
error(TEXT("CreateEvent"), result, 1004);
hListenerStdOutThread = ::CreateThread(NULL, 0, staticListenerStdOut, this, 0, NULL);
@ -101,7 +105,9 @@ BOOL Process::run()
::WaitForSingleObject(_hProcess, INFINITE);
::WaitForMultipleObjects(2, hListenerEvent, TRUE, INFINITE);
} catch (int /*coderr*/){}
}
catch (int /*coderr*/)
{}
// on va fermer toutes les handles
if (hPipeOutW)
@ -156,7 +162,7 @@ void Process::listenerStdOut()
break;
}
if(outbytesRead)
if (outbytesRead)
{
result = :: ReadFile(_hPipeOutR, bufferOut, taille, &outbytesRead, NULL);
if ((!result) && (outbytesRead == 0))
@ -184,7 +190,7 @@ void Process::listenerStdOut()
}
_exitCode = nExitCode;
if(!::SetEvent(hListenerEvent))
if (!::SetEvent(hListenerEvent))
{
systemMessage(TEXT("Thread listenerStdOut"));
}
@ -217,7 +223,7 @@ void Process::listenerStdErr()
break;
}
if(errbytesRead)
if (errbytesRead)
{
result = :: ReadFile(_hPipeErrR, bufferErr, taille, &errbytesRead, NULL);
if ((!result) && (errbytesRead == 0))
@ -244,15 +250,17 @@ void Process::listenerStdErr()
}
//_exitCode = nExitCode;
if(!::SetEvent(hListenerEvent))
if (!::SetEvent(hListenerEvent))
{
systemMessage(TEXT("Thread stdout listener"));
}
}
void Process::error(const TCHAR *txt2display, BOOL & returnCode, int errCode)
{
systemMessage(txt2display);
returnCode = FALSE;
throw int(errCode);
}

View File

@ -36,36 +36,36 @@ using namespace std;
class Process
{
public:
Process() {};
Process() {}
Process(const TCHAR *cmd, const TCHAR *cDir)
: _stdoutStr(TEXT("")), _stderrStr(TEXT("")), _hPipeOutR(NULL),
_hPipeErrR(NULL), _hProcess(NULL), _hProcessThread(NULL) {
_hPipeErrR(NULL), _hProcess(NULL), _hProcessThread(NULL)
{
lstrcpy(_command, cmd);
lstrcpy(_curDir, cDir);
};
}
BOOL run();
const TCHAR * getStdout() const {
return _stdoutStr.c_str();
};
}
const TCHAR * getStderr() const {
return _stderrStr.c_str();
};
}
int getExitCode() const {
return _exitCode;
};
}
bool hasStdout() {
return (_stdoutStr.compare(TEXT("")) != 0);
};
}
bool hasStderr() {
return (_stderrStr.compare(TEXT("")) != 0);
};
}
protected:
// LES ENTREES

View File

@ -33,14 +33,17 @@
class ProcessThread
{
public :
ProcessThread(const TCHAR *appName, const TCHAR *cmd, const TCHAR *cDir, HWND hwnd) : _hwnd(hwnd) {
public:
ProcessThread(const TCHAR *appName, const TCHAR *cmd, const TCHAR *cDir, HWND hwnd)
: _hwnd(hwnd)
{
lstrcpy(_appName, appName);
lstrcpy(_command, cmd);
lstrcpy(_curDir, cDir);
};
}
BOOL run(){
BOOL run()
{
HANDLE hEvent = ::CreateEvent(NULL, FALSE, FALSE, TEXT("localVarProcessEvent"));
_hProcessThread = ::CreateThread(NULL, 0, staticLauncher, this, 0, NULL);
@ -49,9 +52,10 @@ public :
::CloseHandle(hEvent);
return TRUE;
};
}
protected :
protected:
// ENTREES
TCHAR _appName[256];
TCHAR _command[256];
@ -59,12 +63,14 @@ protected :
HWND _hwnd;
HANDLE _hProcessThread;
static DWORD WINAPI staticLauncher(void *myself) {
static DWORD WINAPI staticLauncher(void *myself)
{
((ProcessThread *)myself)->launch();
return TRUE;
};
}
bool launch() {
bool launch()
{
HANDLE hEvent = ::OpenEvent(EVENT_ALL_ACCESS, FALSE, TEXT("localVarProcessEvent"));
HWND hwnd = _hwnd;
TCHAR appName[256];
@ -73,10 +79,8 @@ protected :
Process process(_command, _curDir);
if(!::SetEvent(hEvent))
{
if (!::SetEvent(hEvent))
systemMessage(TEXT("Thread launcher"));
}
process.run();
@ -90,7 +94,7 @@ protected :
::CloseHandle(hMyself);
return true;
};
}
};
#endif PROCESS_THREAD_H

View File

@ -24,43 +24,77 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "Common.h"
#include "regExtDlg.h"
#include "resource.h"
const TCHAR *nppName = TEXT("Notepad++_file");
const TCHAR *nppBackup = TEXT("Notepad++_backup");
const TCHAR *nppDoc = TEXT("Notepad++ Document");
const int nbSupportedLang = 9;
const int nbExtMax = 10;
const TCHAR* nppName = TEXT("Notepad++_file");
const TCHAR* nppBackup = TEXT("Notepad++_backup");
const TCHAR* nppDoc = TEXT("Notepad++ Document");
const int nbSupportedLang = 10;
const int nbExtMax = 27;
const int extNameMax = 18;
TCHAR defExtArray[nbSupportedLang][nbExtMax][extNameMax] = {
{TEXT("Notepad"), TEXT(".txt"), TEXT(".log"), TEXT(".ini")},
{TEXT("c, c++, objc"), TEXT(".h"), TEXT(".hpp"), TEXT(".hxx"), TEXT(".c"), TEXT(".cpp"), TEXT(".cxx"), TEXT(".cc"), TEXT(".m")},
{TEXT("java, c#, pascal"), TEXT(".java"), TEXT(".cs"), TEXT(".pas"), TEXT(".inc")},
{TEXT("web(html) script"), TEXT(".html"), TEXT(".htm"), TEXT(".php"), TEXT(".phtml"), TEXT(".js"), TEXT(".jsp"), TEXT(".asp"), TEXT(".css"), TEXT(".xml")},
{TEXT("public script"), TEXT(".sh"), TEXT(".bsh"), TEXT(".nsi"), TEXT(".nsh"), TEXT(".lua"), TEXT(".pl"), TEXT(".pm"), TEXT(".py")},
{TEXT("property script"), TEXT(".rc"), TEXT(".as"), TEXT(".mx"), TEXT(".vb"), TEXT(".vbs")},
{TEXT("fortran, TeX, SQL"), TEXT(".f"), TEXT(".for"), TEXT(".f90"), TEXT(".f95"), TEXT(".f2k"), TEXT(".tex"), TEXT(".sql")},
{TEXT("misc"), TEXT(".nfo"), TEXT(".mak")},
const TCHAR defExtArray[nbSupportedLang][nbExtMax][extNameMax] =
{
{TEXT("Notepad"),
TEXT(".txt"), TEXT(".log")
},
{TEXT("ms ini/inf"),
TEXT(".ini"), TEXT(".inf")
},
{TEXT("c, c++, objc"),
TEXT(".h"), TEXT(".hh"), TEXT(".hpp"), TEXT(".hxx"), TEXT(".c"), TEXT(".cpp"), TEXT(".cxx"), TEXT(".cc"),
TEXT(".m"), TEXT(".mm"),
TEXT(".vcxproj"), TEXT(".vcproj"), TEXT(".props"), TEXT(".vsprops"), TEXT(".manifest")
},
{TEXT("java, c#, pascal"),
TEXT(".java"), TEXT(".cs"), TEXT(".pas"), TEXT(".pp"), TEXT(".inc")
},
{TEXT("web script"),
TEXT(".html"), TEXT(".htm"), TEXT(".shtml"), TEXT(".shtm"), TEXT(".hta"),
TEXT(".asp"), TEXT(".aspx"),
TEXT(".css"), TEXT(".js"), TEXT(".json"), TEXT(".jsm"), TEXT(".jsp"),
TEXT(".php"), TEXT(".php3"), TEXT(".php4"), TEXT(".php5"), TEXT(".phps"), TEXT(".phpt"), TEXT(".phtml"),
TEXT(".xml"), TEXT(".xhtml"), TEXT(".xht"), TEXT(".xul"), TEXT(".kml"), TEXT(".xaml"), TEXT(".xsml")
},
{TEXT("public script"),
TEXT(".sh"), TEXT(".bsh"), TEXT(".bash"), TEXT(".bat"), TEXT(".cmd"), TEXT(".nsi"),
TEXT(".nsh"), TEXT(".lua"), TEXT(".pl"), TEXT(".pm"), TEXT(".py")
},
{TEXT("property script"),
TEXT(".rc"), TEXT(".as"), TEXT(".mx"), TEXT(".vb"), TEXT(".vbs")
},
{TEXT("fortran, TeX, SQL"),
TEXT(".f"), TEXT(".for"), TEXT(".f90"), TEXT(".f95"), TEXT(".f2k"), TEXT(".tex"), TEXT(".sql")
},
{TEXT("misc"),
TEXT(".nfo"), TEXT(".mak")
},
{TEXT("customize")}
};
void RegExtDlg::doDialog(bool isRTL)
{
if (isRTL)
{
DLGTEMPLATE *pMyDlgTemplate = NULL;
DLGTEMPLATE *pMyDlgTemplate = nullptr;
HGLOBAL hMyDlgTemplate = makeRTLResource(IDD_REGEXT_BOX, &pMyDlgTemplate);
::DialogBoxIndirectParam(_hInst, pMyDlgTemplate, _hParent, dlgProc, (LPARAM)this);
::GlobalFree(hMyDlgTemplate);
}
else
::DialogBoxParam(_hInst, MAKEINTRESOURCE(IDD_REGEXT_BOX), _hParent, dlgProc, (LPARAM)this);
};
}
INT_PTR CALLBACK RegExtDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam)
{
@ -74,7 +108,6 @@ INT_PTR CALLBACK RegExtDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar
::EnableWindow(::GetDlgItem(_hSelf, IDC_ADDFROMLANGEXT_BUTTON), false);
::EnableWindow(::GetDlgItem(_hSelf, IDC_REMOVEEXT_BUTTON), false);
::SendDlgItemMessage(_hSelf, IDC_CUSTOMEXT_EDIT, EM_SETLIMITTEXT, extNameMax-1, 0);
return TRUE;
}
@ -141,10 +174,11 @@ INT_PTR CALLBACK RegExtDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar
return TRUE;
}
case IDCANCEL :
case IDCANCEL:
{
::EndDialog(_hSelf, 0);
return TRUE;
}
}
if (HIWORD(wParam) == EN_CHANGE)
@ -193,6 +227,7 @@ INT_PTR CALLBACK RegExtDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar
::SendDlgItemMessage(_hSelf, IDC_REGEXT_LANGEXT_LIST, LB_DELETESTRING, count, 0);
for (int j = 1 ; j < nbExtMax ; ++j)
{
if (lstrcmp(TEXT(""), defExtArray[i][j]))
{
int index = ::SendDlgItemMessage(_hSelf, IDC_REGEXT_REGISTEREDEXTS_LIST, LB_FINDSTRINGEXACT, 0, (LPARAM)defExtArray[i][j]);
@ -200,31 +235,33 @@ INT_PTR CALLBACK RegExtDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar
::SendDlgItemMessage(_hSelf, IDC_REGEXT_LANGEXT_LIST, LB_ADDSTRING, 0, (LPARAM)defExtArray[i][j]);
}
}
}
::EnableWindow(::GetDlgItem(_hSelf, IDC_ADDFROMLANGEXT_BUTTON), false);
}
}
else if (LOWORD(wParam) == IDC_REGEXT_LANGEXT_LIST)
{
if (i != LB_ERR)
::EnableWindow(::GetDlgItem(_hSelf, IDC_ADDFROMLANGEXT_BUTTON), true);
}
else if (LOWORD(wParam) == IDC_REGEXT_REGISTEREDEXTS_LIST)
{
if (i != LB_ERR)
::EnableWindow(::GetDlgItem(_hSelf, IDC_REMOVEEXT_BUTTON), true);
}
}
// break; // no break here
}
default :
return FALSE;
}
//return FALSE;
}
void RegExtDlg::getRegisteredExts()
{
int nbRegisteredKey = getNbSubKey(HKEY_CLASSES_ROOT);
@ -233,7 +270,7 @@ void RegExtDlg::getRegisteredExts()
TCHAR extName[extNameLen];
//FILETIME fileTime;
int extNameActualLen = extNameLen;
int res = ::RegEnumKeyEx(HKEY_CLASSES_ROOT, i, extName, (LPDWORD)&extNameActualLen, NULL, NULL, NULL, NULL);
int res = ::RegEnumKeyEx(HKEY_CLASSES_ROOT, i, extName, (LPDWORD)&extNameActualLen, nullptr, nullptr, nullptr, nullptr);
if ((res == ERROR_SUCCESS) && (extName[0] == '.'))
{
//TCHAR valName[extNameLen];
@ -243,8 +280,8 @@ void RegExtDlg::getRegisteredExts()
HKEY hKey2Check;
extNameActualLen = extNameLen;
::RegOpenKeyEx(HKEY_CLASSES_ROOT, extName, 0, KEY_ALL_ACCESS, &hKey2Check);
::RegQueryValueEx(hKey2Check, TEXT(""), NULL, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
//::RegEnumValue(hKey2Check, 0, valName, (LPDWORD)&extNameActualLen, NULL, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
::RegQueryValueEx(hKey2Check, TEXT(""), nullptr, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
//::RegEnumValue(hKey2Check, 0, valName, (LPDWORD)&extNameActualLen, nullptr, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
if ((valType == REG_SZ) && (!lstrcmp(valData, nppName)))
::SendDlgItemMessage(_hSelf, IDC_REGEXT_REGISTEREDEXTS_LIST, LB_ADDSTRING, 0, (LPARAM)extName);
::RegCloseKey(hKey2Check);
@ -252,6 +289,7 @@ void RegExtDlg::getRegisteredExts()
}
}
void RegExtDlg::getDefSupportedExts()
{
for (int i = 0 ; i < nbSupportedLang ; ++i)
@ -265,15 +303,7 @@ void RegExtDlg::addExt(TCHAR *ext)
DWORD dwDisp;
long nRet;
nRet = ::RegCreateKeyEx(HKEY_CLASSES_ROOT,
ext,
0,
NULL,
0,
KEY_ALL_ACCESS,
NULL,
&hKey,
&dwDisp);
nRet = ::RegCreateKeyEx(HKEY_CLASSES_ROOT, ext, 0, nullptr, 0, KEY_ALL_ACCESS, nullptr, &hKey, &dwDisp);
if (nRet == ERROR_SUCCESS)
{
@ -282,16 +312,17 @@ void RegExtDlg::addExt(TCHAR *ext)
if (dwDisp == REG_OPENED_EXISTING_KEY)
{
int res = ::RegQueryValueEx(hKey, TEXT(""), NULL, NULL, (LPBYTE)valData, (LPDWORD)&valDataLen);
int res = ::RegQueryValueEx(hKey, TEXT(""), nullptr, nullptr, (LPBYTE)valData, (LPDWORD)&valDataLen);
if (res == ERROR_SUCCESS)
::RegSetValueEx(hKey, nppBackup, 0, REG_SZ, (LPBYTE)valData, valDataLen);
}
::RegSetValueEx(hKey, NULL, 0, REG_SZ, (LPBYTE)nppName, (lstrlen(nppName)+1)*sizeof(TCHAR));
::RegSetValueEx(hKey, nullptr, 0, REG_SZ, (LPBYTE)nppName, (lstrlen(nppName)+1)*sizeof(TCHAR));
::RegCloseKey(hKey);
}
}
bool RegExtDlg::deleteExts(const TCHAR *ext2Delete)
{
HKEY hKey;
@ -311,20 +342,21 @@ bool RegExtDlg::deleteExts(const TCHAR *ext2Delete)
TCHAR valData[extNameLen];
int valDataLen = extNameLen*sizeof(TCHAR);
int valType;
int res = ::RegQueryValueEx(hKey, nppBackup, NULL, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
int res = ::RegQueryValueEx(hKey, nppBackup, nullptr, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
if (res == ERROR_SUCCESS)
{
::RegSetValueEx(hKey, NULL, 0, valType, (LPBYTE)valData, valDataLen);
::RegSetValueEx(hKey, nullptr, 0, valType, (LPBYTE)valData, valDataLen);
::RegDeleteValue(hKey, nppBackup);
}
else
::RegDeleteValue(hKey, NULL);
::RegDeleteValue(hKey, nullptr);
}
return true;
}
void RegExtDlg::writeNppPath()
{
HKEY hKey, hRootKey;
@ -333,16 +365,7 @@ void RegExtDlg::writeNppPath()
generic_string regStr(nppName);
regStr += TEXT("\\shell\\open\\command");
nRet = ::RegCreateKeyEx(
HKEY_CLASSES_ROOT,
regStr.c_str(),
0,
NULL,
0,
KEY_ALL_ACCESS,
NULL,
&hKey,
&dwDisp);
nRet = ::RegCreateKeyEx(HKEY_CLASSES_ROOT, regStr.c_str(), 0, nullptr, 0, KEY_ALL_ACCESS, nullptr, &hKey, &dwDisp);
if (nRet == ERROR_SUCCESS)
@ -351,7 +374,7 @@ void RegExtDlg::writeNppPath()
{
// Write the value for new document
::RegOpenKeyEx(HKEY_CLASSES_ROOT, nppName, 0, KEY_ALL_ACCESS, &hRootKey);
::RegSetValueEx(hRootKey, NULL, 0, REG_SZ, (LPBYTE)nppDoc, (lstrlen(nppDoc)+1)*sizeof(TCHAR));
::RegSetValueEx(hRootKey, nullptr, 0, REG_SZ, (LPBYTE)nppDoc, (lstrlen(nppDoc)+1)*sizeof(TCHAR));
RegCloseKey(hRootKey);
TCHAR nppPath[MAX_PATH];
@ -360,7 +383,7 @@ void RegExtDlg::writeNppPath()
TCHAR nppPathParam[MAX_PATH] = TEXT("\"");
lstrcat(lstrcat(nppPathParam, nppPath), TEXT("\" \"%1\""));
::RegSetValueEx(hKey, NULL, 0, REG_SZ, (LPBYTE)nppPathParam, (lstrlen(nppPathParam)+1)*sizeof(TCHAR));
::RegSetValueEx(hKey, nullptr, 0, REG_SZ, (LPBYTE)nppPathParam, (lstrlen(nppPathParam)+1)*sizeof(TCHAR));
}
RegCloseKey(hKey);
}
@ -368,16 +391,7 @@ void RegExtDlg::writeNppPath()
//Set default icon value
regStr = nppName;
regStr += TEXT("\\DefaultIcon");
nRet = ::RegCreateKeyEx(
HKEY_CLASSES_ROOT,
regStr.c_str(),
0,
NULL,
0,
KEY_ALL_ACCESS,
NULL,
&hKey,
&dwDisp);
nRet = ::RegCreateKeyEx(HKEY_CLASSES_ROOT, regStr.c_str(), 0, nullptr, 0, KEY_ALL_ACCESS, nullptr, &hKey, &dwDisp);
if (nRet == ERROR_SUCCESS)
{
@ -389,8 +403,10 @@ void RegExtDlg::writeNppPath()
TCHAR nppPathParam[MAX_PATH] = TEXT("\"");
lstrcat(lstrcat(nppPathParam, nppPath), TEXT("\",0"));
::RegSetValueEx(hKey, NULL, 0, REG_SZ, (LPBYTE)nppPathParam, (lstrlen(nppPathParam)+1)*sizeof(TCHAR));
::RegSetValueEx(hKey, nullptr, 0, REG_SZ, (LPBYTE)nppPathParam, (lstrlen(nppPathParam)+1)*sizeof(TCHAR));
}
RegCloseKey(hKey);
}
}

View File

@ -57,13 +57,13 @@ private :
int nbSubKey;
long result = ::RegQueryInfoKey(hKey, NULL, NULL, NULL, (LPDWORD)&nbSubKey, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
return (result == ERROR_SUCCESS)?nbSubKey:0;
};
}
int getNbSubValue(HKEY hKey) const {
int nbSubValue;
long result = ::RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL, NULL, NULL, (LPDWORD)&nbSubValue, NULL, NULL, NULL, NULL);
return (result == ERROR_SUCCESS)?nbSubValue:0;
};
}
};
#endif //REG_EXT_DLG_H

View File

@ -34,9 +34,9 @@ IDD_REGEXT_BOX DIALOGEX 0, 0, 370, 180
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | DS_CONTROL
FONT 8, TEXT("MS Shell Dlg"), 0, 0, 0x1
BEGIN
LTEXT "Supported exts :",IDC_SUPPORTEDEXTS_STATIC,113,18,77,8
LISTBOX IDC_REGEXT_LANG_LIST,113,31,63,122,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
LISTBOX IDC_REGEXT_LANGEXT_LIST,181,31,29,122,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
LTEXT "Supported exts :",IDC_SUPPORTEDEXTS_STATIC,100,18,77,8
LISTBOX IDC_REGEXT_LANG_LIST,100,31,63,122,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
LISTBOX IDC_REGEXT_LANGEXT_LIST,168,31,42,122,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
EDITTEXT IDC_CUSTOMEXT_EDIT,181,75,30,14,ES_AUTOHSCROLL | NOT WS_VISIBLE
PUSHBUTTON "->",IDC_ADDFROMLANGEXT_BUTTON,218,75,26,14
PUSHBUTTON "<-",IDC_REMOVEEXT_BUTTON,218,98,26,14

File diff suppressed because it is too large Load Diff

View File

@ -196,8 +196,8 @@ class ProjectPanel;
class DocumentMap;
class FunctionListPanel;
class Notepad_plus {
class Notepad_plus
{
friend class Notepad_plus_Window;
friend class FileManager;
@ -207,11 +207,6 @@ public:
LRESULT init(HWND hwnd);
LRESULT process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
void killAllChildren();
/*
HWND getWindowHandle() const {
return _pPublicInterface->getHSelf();
};
*/
enum comment_mode {cm_comment, cm_uncomment, cm_toggle};
@ -234,7 +229,7 @@ public:
bool fileReload() {
BufferID buf = _pEditView->getCurrentBufferID();
return doReload(buf, buf->isDirty());
};
}
bool fileClose(BufferID id = BUFFER_INVALID, int curView = -1); //use curView to override view to close from
bool fileCloseAll(bool doDeleteBackup, bool isSnapshotMode = false);
@ -263,17 +258,17 @@ public:
void saveUserDefineLangs() {
if (ScintillaEditView::getUserDefineDlg()->isDirty())
(NppParameters::getInstance())->writeUserDefinedLang();
};
}
void saveShortcuts(){
NppParameters::getInstance()->writeShortcuts();
};
}
void saveSession(const Session & session);
void saveCurrentSession();
void saveFindHistory(){
_findReplaceDlg.saveFindHistory();
(NppParameters::getInstance())->writeFindHistory();
};
}
void getCurrentOpenedFiles(Session & session, bool includUntitledDoc = false);
@ -301,11 +296,11 @@ public:
int getHtmlXmlEncoding(const TCHAR *fileName) const;
HACCEL getAccTable() const{
return _accelerator.getAccTable();
};
}
bool emergency(generic_string emergencySavedDir);
Buffer * getCurrentBuffer() {
return _pEditView->getCurrentBuffer();
};
}
void launchDocumentBackupTask();
int getQuoteIndexFrom(const char *quoter) const;
void showQuoteFromIndex(int index) const;
@ -389,23 +384,27 @@ private:
//For Dynamic selection highlight
CharacterRange _prevSelectedRange;
struct ActivateAppInfo {
struct ActivateAppInfo
{
bool _isActivated;
int _x;
int _y;
ActivateAppInfo() : _isActivated(false), _x(0), _y(0){};
} _activeAppInf;
}
_activeAppInf;
//Synchronized Scolling
struct SyncInfo {
struct SyncInfo
{
int _line;
int _column;
bool _isSynScollV;
bool _isSynScollH;
SyncInfo():_line(0), _column(0), _isSynScollV(false), _isSynScollH(false){};
bool doSync() const {return (_isSynScollV || _isSynScollH); };
} _syncInfo;
}
_syncInfo;
bool _isUDDocked;
@ -437,7 +436,6 @@ private:
FunctionListPanel *_pFuncList;
BOOL notify(SCNotification *notification);
void specialCmd(int id);
void command(int id);
//Document management
@ -459,15 +457,15 @@ private:
int currentView(){
return _activeView;
};
}
int otherView(){
return (_activeView == MAIN_VIEW?SUB_VIEW:MAIN_VIEW);
};
}
int otherFromView(int whichOne){
return (whichOne == MAIN_VIEW?SUB_VIEW:MAIN_VIEW);
};
}
bool canHideView(int whichOne); //true if view can safely be hidden (no open docs etc)
@ -510,7 +508,7 @@ private:
void setLangStatus(LangType langType){
_statusBar.setText(getLangDesc(langType).c_str(), STATUSBAR_DOC_TYPE);
};
}
void setDisplayFormat(formatType f);
int getCmdIDFromEncoding(int encoding) const;
@ -523,7 +521,7 @@ private:
void checkMenuItem(int itemID, bool willBeChecked) const {
::CheckMenuItem(_mainMenuHandle, itemID, MF_BYCOMMAND | (willBeChecked?MF_CHECKED:MF_UNCHECKED));
};
}
bool isConditionExprLine(int lineNumber);
int findMachedBracePos(size_t startPos, size_t endPos, char targetSymbol, char matchedSymbol);
@ -531,25 +529,32 @@ private:
void addHotSpot();
void bookmarkAdd(int lineno) const {
void bookmarkAdd(int lineno) const
{
if (lineno == -1)
lineno = _pEditView->getCurrentLineNumber();
if (!bookmarkPresent(lineno))
_pEditView->execute(SCI_MARKERADD, lineno, MARK_BOOKMARK);
};
void bookmarkDelete(int lineno) const {
}
void bookmarkDelete(int lineno) const
{
if (lineno == -1)
lineno = _pEditView->getCurrentLineNumber();
if ( bookmarkPresent(lineno))
_pEditView->execute(SCI_MARKERDELETE, lineno, MARK_BOOKMARK);
};
bool bookmarkPresent(int lineno) const {
}
bool bookmarkPresent(int lineno) const
{
if (lineno == -1)
lineno = _pEditView->getCurrentLineNumber();
LRESULT state = _pEditView->execute(SCI_MARKERGET, lineno);
return ((state & (1 << MARK_BOOKMARK)) != 0);
};
void bookmarkToggle(int lineno) const {
}
void bookmarkToggle(int lineno) const
{
if (lineno == -1)
lineno = _pEditView->getCurrentLineNumber();
@ -557,11 +562,13 @@ private:
bookmarkDelete(lineno);
else
bookmarkAdd(lineno);
};
}
void bookmarkNext(bool forwardScan);
void bookmarkClearAll() const {
void bookmarkClearAll() const
{
_pEditView->execute(SCI_MARKERDELETEALL, MARK_BOOKMARK);
};
}
void copyMarkedLines();
void cutMarkedLines();
@ -637,12 +644,14 @@ private:
static bool deleteForward(ScintillaEditView *pCurrentView, BufferID targetBufID);
static bool selectBack(ScintillaEditView *pCurrentView, BufferID targetBufID);
static int getRandomNumber(int rangeMax = -1) {
static int getRandomNumber(int rangeMax = -1)
{
int randomNumber = rand();
if (rangeMax == -1)
return randomNumber;
return (rand() % rangeMax);
};
}
static DWORD WINAPI backupDocument(void *params);
};

View File

@ -518,10 +518,10 @@ BEGIN
POPUP "E&ncoding"
BEGIN
MENUITEM "Encode in ANSI", IDM_FORMAT_ANSI
MENUITEM "Encode in UTF-8 without BOM", IDM_FORMAT_AS_UTF_8
MENUITEM "Encode in UTF-8", IDM_FORMAT_UTF_8
MENUITEM "Encode in UCS-2 Big Endian", IDM_FORMAT_UCS_2BE
MENUITEM "Encode in UCS-2 Little Endian", IDM_FORMAT_UCS_2LE
MENUITEM "Encode in UTF-8", IDM_FORMAT_AS_UTF_8
MENUITEM "Encode in UTF-8-BOM", IDM_FORMAT_UTF_8
MENUITEM "Encode in UCS-2 BE BOM", IDM_FORMAT_UCS_2BE
MENUITEM "Encode in UCS-2 LE BOM", IDM_FORMAT_UCS_2LE
POPUP "Character sets"
BEGIN
POPUP "Arabic"
@ -637,10 +637,10 @@ BEGIN
END
MENUITEM SEPARATOR
MENUITEM "Convert to ANSI", IDM_FORMAT_CONV2_ANSI
MENUITEM "Convert to UTF-8 without BOM", IDM_FORMAT_CONV2_AS_UTF_8
MENUITEM "Convert to UTF-8", IDM_FORMAT_CONV2_UTF_8
MENUITEM "Convert to UCS-2 Big Endian", IDM_FORMAT_CONV2_UCS_2BE
MENUITEM "Convert to UCS-2 Little Endian", IDM_FORMAT_CONV2_UCS_2LE
MENUITEM "Convert to UTF-8", IDM_FORMAT_CONV2_AS_UTF_8
MENUITEM "Convert to UTF-8-BOM", IDM_FORMAT_CONV2_UTF_8
MENUITEM "Convert to UCS-2 BE BOM", IDM_FORMAT_CONV2_UCS_2BE
MENUITEM "Convert to UCS-2 LE BOM", IDM_FORMAT_CONV2_UCS_2LE
END
POPUP "&Language"

View File

@ -53,7 +53,7 @@ notepad++ [--help] [-multiInst] [-noPlugin] [-lLanguage] [-LlangCode] [-nLineNum
-openSession : Open a session. filePath must be a session file\r\
-r : Open files recursively. This argument will be ignored\r\
if filePath contain no wildcard character\r\
-qn : Launch ghost typing to disply easter egg via its name\r\
-qn : Launch ghost typing to display easter egg via its name\r\
-qt : Launch ghost typing to display a text via the given text\r\
-qf : Launch ghost typing to display a file content via the file path\r\
filePath : file or folder name to open (absolute or relative path name)\r\

View File

@ -529,11 +529,6 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
}
else
{
if ((lParam == 1) || (lParam == 2))
{
specialCmd(LOWORD(wParam));
}
else
command(LOWORD(wParam));
}
}
@ -1222,6 +1217,14 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
return TRUE;
}
case NPPM_SETSMOOTHFONT:
{
int param = (lParam == 0 ? SC_EFF_QUALITY_DEFAULT : SC_EFF_QUALITY_LCD_OPTIMIZED);
_mainEditView.execute(SCI_SETFONTQUALITY, param);
_subEditView.execute(SCI_SETFONTQUALITY, param);
return TRUE;
}
case NPPM_INTERNAL_SETMULTISELCTION :
{
NppGUI & nppGUI = (NppGUI &)pNppParam->getNppGUI();
@ -1572,9 +1575,18 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
saveSession(currentSession);
// write settings on cloud if enabled, if the settings files don't exist
if (nppgui._cloudChoice != noCloud)
if (nppgui._cloudPath != TEXT("") && pNppParam->isCloudPathChanged())
{
pNppParam->writeSettingsFilesOnCloudForThe1stTime(nppgui._cloudChoice);
bool isOK = pNppParam->writeSettingsFilesOnCloudForThe1stTime(nppgui._cloudPath);
if (!isOK)
{
_nativeLangSpeaker.messageBox("SettingsOnCloudError",
_pPublicInterface->getHSelf(),
TEXT("It seems the path of settings on cloud is set on a read only drive,\ror on a folder needed privilege right for writting access.\rYour settings on cloud will be canceled. Please reset a coherent value via Preference dialog."),
TEXT("Settings on Cloud"),
MB_OK | MB_APPLMODAL);
pNppParam->removeCloudChoice();
}
}
//Sends WM_DESTROY, Notepad++ will end

View File

@ -2581,6 +2581,89 @@ void Notepad_plus::command(int id)
}
break;
case IDM_VIEW_LINENUMBER:
case IDM_VIEW_SYMBOLMARGIN:
case IDM_VIEW_DOCCHANGEMARGIN:
{
int margin;
if (id == IDM_VIEW_LINENUMBER)
margin = ScintillaEditView::_SC_MARGE_LINENUMBER;
else //if (id == IDM_VIEW_SYMBOLMARGIN)
margin = ScintillaEditView::_SC_MARGE_SYBOLE;
if (_mainEditView.hasMarginShowed(margin))
{
_mainEditView.showMargin(margin, false);
_subEditView.showMargin(margin, false);
}
else
{
_mainEditView.showMargin(margin);
_subEditView.showMargin(margin);
}
}
break;
case IDM_VIEW_FOLDERMAGIN_SIMPLE:
case IDM_VIEW_FOLDERMAGIN_ARROW:
case IDM_VIEW_FOLDERMAGIN_CIRCLE:
case IDM_VIEW_FOLDERMAGIN_BOX:
case IDM_VIEW_FOLDERMAGIN:
{
folderStyle fStyle = (id == IDM_VIEW_FOLDERMAGIN_SIMPLE) ? FOLDER_STYLE_SIMPLE : \
(id == IDM_VIEW_FOLDERMAGIN_ARROW) ? FOLDER_STYLE_ARROW : \
(id == IDM_VIEW_FOLDERMAGIN_CIRCLE) ? FOLDER_STYLE_CIRCLE : \
(id == IDM_VIEW_FOLDERMAGIN) ? FOLDER_STYLE_NONE : FOLDER_STYLE_BOX;
_mainEditView.setMakerStyle(fStyle);
_subEditView.setMakerStyle(fStyle);
}
break;
case IDM_VIEW_CURLINE_HILITING:
{
COLORREF colour = (NppParameters::getInstance())->getCurLineHilitingColour();
_mainEditView.setCurrentLineHiLiting(!_pEditView->isCurrentLineHiLiting(), colour);
_subEditView.setCurrentLineHiLiting(!_pEditView->isCurrentLineHiLiting(), colour);
}
break;
case IDM_VIEW_EDGEBACKGROUND:
case IDM_VIEW_EDGELINE:
case IDM_VIEW_EDGENONE:
{
int mode;
switch (id)
{
case IDM_VIEW_EDGELINE:
{
mode = EDGE_LINE;
break;
}
case IDM_VIEW_EDGEBACKGROUND:
{
mode = EDGE_BACKGROUND;
break;
}
default:
mode = EDGE_NONE;
}
_mainEditView.execute(SCI_SETEDGEMODE, mode);
_subEditView.execute(SCI_SETEDGEMODE, mode);
}
break;
case IDM_VIEW_LWDEF:
case IDM_VIEW_LWALIGN:
case IDM_VIEW_LWINDENT:
{
int mode = (id == IDM_VIEW_LWALIGN) ? SC_WRAPINDENT_SAME : \
(id == IDM_VIEW_LWINDENT) ? SC_WRAPINDENT_INDENT : SC_WRAPINDENT_FIXED;
_mainEditView.execute(SCI_SETWRAPINDENTMODE, mode);
_subEditView.execute(SCI_SETWRAPINDENTMODE, mode);
}
break;
default :
if (id > IDM_FILEMENU_LASTONE && id < (IDM_FILEMENU_LASTONE + _lastRecentFileList.getMaxNbLRF() + 1))
{
@ -2674,6 +2757,8 @@ void Notepad_plus::command(int id)
case IDM_EDIT_JOIN_LINES:
case IDM_EDIT_LINE_UP:
case IDM_EDIT_LINE_DOWN:
case IDM_EDIT_REMOVEEMPTYLINES:
case IDM_EDIT_REMOVEEMPTYLINESWITHBLANK:
case IDM_EDIT_UPPERCASE:
case IDM_EDIT_LOWERCASE:
case IDM_EDIT_BLOCK_COMMENT:

View File

@ -123,7 +123,7 @@ BOOL Notepad_plus::notify(SCNotification *notification)
if (isSnapshotMode && !isDirty)
{
bool canUndo = _pEditView->execute(SCI_CANUNDO) == TRUE;
if (!canUndo && buf->isLoadedDirty())
if (!canUndo && buf->isLoadedDirty() && buf->isDirty())
isDirty = true;
}
buf->setDirty(isDirty);

View File

@ -35,7 +35,6 @@
#include "localization.h"
#include "localizationString.h"
#include "UserDefineDialog.h"
#include "../src/sqlite/sqlite3.h"
using namespace std;
@ -85,7 +84,7 @@ WinMenuKeyDefinition winKeyDefs[] = {
{VK_NULL, IDM_FILE_PRINTNOW, false, false, false, NULL},
{VK_F4, IDM_FILE_EXIT, false, true, false, NULL},
{ VK_T, IDM_FILE_RESTORELASTCLOSEDFILE, true, false, true, NULL},
{ VK_T, IDM_FILE_RESTORELASTCLOSEDFILE, true, false, true, TEXT("Restore Recent Closed File")},
// {VK_NULL, IDM_EDIT_UNDO, false, false, false, NULL},
// {VK_NULL, IDM_EDIT_REDO, false, false, false, NULL},
@ -667,7 +666,7 @@ NppParameters::NppParameters() : _pXmlDoc(NULL),_pXmlUserDoc(NULL), _pXmlUserSty
_pXmlSessionDoc(NULL), _pXmlBlacklistDoc(NULL), _nbUserLang(0), _nbExternalLang(0),\
_hUXTheme(NULL), _transparentFuncAddr(NULL), _enableThemeDialogTextureFuncAddr(NULL),\
_pNativeLangSpeaker(NULL), _isTaskListRBUTTONUP_Active(false), _fileSaveDlgFilterIndex(-1),\
_asNotepadStyle(false), _isFindReplacing(false)
_asNotepadStyle(false), _isFindReplacing(false), _initialCloudChoice(TEXT(""))
{
// init import UDL array
_nbImportedULD = 0;
@ -893,255 +892,6 @@ int base64ToAscii(char *dest, const char *base64Str)
return k;
}
/*
Spec for settings on cloud (dropbox, oneDrive and googleDrive)
ON LOAD:
1. if doLocalConf.xml, check nppInstalled/cloud/choice
2. check the validity of 3 cloud and get the npp_cloud_folder according the choice.
3. Set npp_cloud_folder as user_dir.
Attention: settings files in cloud_folder should never be removed or erased.
ON SET:
1. write "dropbox", "oneDrive" or "googleDrive" in nppInstalled/cloud/choice file, if choice file doesn't exist, create it.
2. ask user to restart Notepad++
3. if no settings files in npp_cloud_folder , write settings before exiting.
ON UNSET:
1. remove nppInstalled/cloud/choice file
2. ask user to restart Notepad++
Here are the list of xml settings used by Notepad++:
1. config.xml: saveed on exit
2. stylers.xml: saved on modified
3. langs.xml: no save
4. session.xml: saveed on exit or : all the time, if session snapshot is enabled.
5. shortcuts.xml: saveed on exit
6. userDefineLang.xml: saveed on exit
7. functionlist.xml: no save
8. contextMenu.xml: no save
9. nativeLang.xml: no save
*/
generic_string NppParameters::getCloudSettingsPath(CloudChoice cloudChoice)
{
generic_string cloudSettingsPath = TEXT("");
//
// check if dropbox is present
//
generic_string settingsPath4dropbox = TEXT("");
ITEMIDLIST *pidl;
const HRESULT specialFolderLocationResult_1 = SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl);
if ( !SUCCEEDED( specialFolderLocationResult_1 ) )
{
return cloudSettingsPath;
}
TCHAR tmp[MAX_PATH];
SHGetPathFromIDList(pidl, tmp);
generic_string dropboxInfoDB = tmp;
PathAppend(dropboxInfoDB, TEXT("Dropbox\\host.db"));
try {
if (::PathFileExists(dropboxInfoDB.c_str()))
{
// get whole content
std::string content = getFileContent(dropboxInfoDB.c_str());
if (content != "")
{
// get the second line
const char *pB64 = content.c_str();
for (size_t i = 0; i < content.length(); ++i)
{
++pB64;
if (*pB64 == '\n')
{
++pB64;
break;
}
}
// decode base64
size_t b64Len = strlen(pB64);
size_t asciiLen = getAsciiLenFromBase64Len(b64Len);
if (asciiLen)
{
char * pAsciiText = new char[asciiLen + 1];
int len = base64ToAscii(pAsciiText, pB64);
if (len)
{
//::MessageBoxA(NULL, pAsciiText, "", MB_OK);
const size_t maxLen = 2048;
wchar_t dest[maxLen];
mbstowcs(dest, pAsciiText, maxLen);
if (::PathFileExists(dest))
{
settingsPath4dropbox = dest;
_nppGUI._availableClouds |= DROPBOX_AVAILABLE;
}
}
delete[] pAsciiText;
}
}
}
} catch (...) {
//printStr(TEXT("JsonCpp exception captured"));
}
//
// TODO: check if OneDrive is present
//
// Get value from registry
generic_string settingsPath4OneDrive = TEXT("");
HKEY hOneDriveKey;
LRESULT res = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SkyDrive"), 0, KEY_READ, &hOneDriveKey);
if (res != ERROR_SUCCESS)
{
res = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\SkyDrive"), 0, KEY_READ, &hOneDriveKey);
}
if (res == ERROR_SUCCESS)
{
TCHAR valData[MAX_PATH];
int valDataLen = MAX_PATH * sizeof(TCHAR);
int valType;
::RegQueryValueEx(hOneDriveKey, TEXT("UserFolder"), NULL, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
if (::PathFileExists(valData))
{
settingsPath4OneDrive = valData;
_nppGUI._availableClouds |= ONEDRIVE_AVAILABLE;
}
::RegCloseKey(hOneDriveKey);
}
//
// TODO: check if google drive is present
//
generic_string googleDriveInfoDB = TEXT("");
HKEY hGoogleDriveKey;
res = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Google\\Drive"), 0, KEY_READ, &hGoogleDriveKey);
if (res == ERROR_SUCCESS)
{
TCHAR valData[MAX_PATH];
int valDataLen = MAX_PATH * sizeof(TCHAR);
int valType;
::RegQueryValueEx(hGoogleDriveKey, TEXT("Path"), NULL, (LPDWORD)&valType, (LPBYTE)valData, (LPDWORD)&valDataLen);
if (::PathFileExists(valData)) // Windows 8
{
googleDriveInfoDB = valData;
PathAppend(googleDriveInfoDB, TEXT("\\user_default\\sync_config.db"));
}
else // Windows 7
{
// try to guess google drive info path
ITEMIDLIST *pidl2;
SHGetSpecialFolderLocation(NULL, CSIDL_LOCAL_APPDATA, &pidl2);
TCHAR tmp2[MAX_PATH];
SHGetPathFromIDList(pidl2, tmp2);
googleDriveInfoDB = tmp2;
PathAppend(googleDriveInfoDB, TEXT("Google\\Drive\\sync_config.db"));
}
::RegCloseKey(hGoogleDriveKey);
}
generic_string settingsPath4GoogleDrive = TEXT("");
if (::PathFileExists(googleDriveInfoDB.c_str()))
{
try {
sqlite3 *handle;
sqlite3_stmt *stmt;
// try to create the database. If it doesnt exist, it would be created
// pass a pointer to the pointer to sqlite3, in short sqlite3**
char dest[MAX_PATH];
wcstombs(dest, googleDriveInfoDB.c_str(), sizeof(dest));
int retval = sqlite3_open(dest, &handle);
// If connection failed, handle returns NULL
if (retval == SQLITE_OK)
{
char query[] = "select * from data where entry_key='local_sync_root_path'";
retval = sqlite3_prepare_v2(handle, query, -1, &stmt, 0); //sqlite3_prepare_v2() interfaces use UTF-8
if (retval == SQLITE_OK)
{
// fetch a rows status
retval = sqlite3_step(stmt);
if (retval == SQLITE_ROW)
{
const unsigned char *text;
text = sqlite3_column_text(stmt, 2);
const size_t maxLen = 2048;
wchar_t googleFolder[maxLen];
mbstowcs(googleFolder, (char *)(text + 4), maxLen);
if (::PathFileExists(googleFolder))
{
settingsPath4GoogleDrive = googleFolder;
_nppGUI._availableClouds |= GOOGLEDRIVE_AVAILABLE;
}
}
}
sqlite3_close(handle);
}
} catch(...) {
// Do nothing
}
}
if (cloudChoice == dropbox && (_nppGUI._availableClouds & DROPBOX_AVAILABLE))
{
cloudSettingsPath = settingsPath4dropbox;
PathAppend(cloudSettingsPath, TEXT("Notepad++"));
// The folder cloud_folder\Notepad++ should exist.
// if it doesn't, it means this folder was removed by user, we create it anyway
if (!PathFileExists(cloudSettingsPath.c_str()))
{
::CreateDirectory(cloudSettingsPath.c_str(), NULL);
}
_nppGUI._cloudChoice = dropbox;
}
else if (cloudChoice == oneDrive)
{
cloudSettingsPath = settingsPath4OneDrive;
PathAppend(cloudSettingsPath, TEXT("Notepad++"));
if (!PathFileExists(cloudSettingsPath.c_str()))
{
::CreateDirectory(cloudSettingsPath.c_str(), NULL);
}
_nppGUI._cloudChoice = oneDrive;
}
else if (cloudChoice == googleDrive)
{
cloudSettingsPath = settingsPath4GoogleDrive;
PathAppend(cloudSettingsPath, TEXT("Notepad++"));
if (!PathFileExists(cloudSettingsPath.c_str()))
{
::CreateDirectory(cloudSettingsPath.c_str(), NULL);
}
_nppGUI._cloudChoice = googleDrive;
}
//else if (cloudChoice == noCloud)
// cloudSettingsPath is always empty
return cloudSettingsPath;
}
generic_string NppParameters::getSettingsFolder()
{
generic_string settingsFolderPath;
@ -1230,36 +980,24 @@ bool NppParameters::load()
_sessionPath = _userPath; // Session stock the absolute file path, it should never be on cloud
// Detection cloud settings
//bool isCloud = false;
generic_string cloudChoicePath = _userPath;
cloudChoicePath += TEXT("\\cloud\\choice");
CloudChoice cloudChoice = noCloud;
// cloudChoicePath doesn't exist, just quit
if (::PathFileExists(cloudChoicePath.c_str()))
{
// Read cloud choice
std::string cloudChoiceStr = getFileContent(cloudChoicePath.c_str());
if (cloudChoiceStr == "dropbox")
{
cloudChoice = dropbox;
}
else if (cloudChoiceStr == "oneDrive")
{
cloudChoice = oneDrive;
}
else if (cloudChoiceStr == "googleDrive")
{
cloudChoice = googleDrive;
}
}
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
std::wstring cloudChoiceStrW = wmc->char2wchar(cloudChoiceStr.c_str(), SC_CP_UTF8);
generic_string cloudPath = getCloudSettingsPath(cloudChoice);
if (cloudPath != TEXT("") && ::PathFileExists(cloudPath.c_str()))
if (cloudChoiceStrW != TEXT("") && ::PathFileExists(cloudChoiceStrW.c_str()))
{
_userPath = cloudPath;
_userPath = cloudChoiceStrW;
_nppGUI._cloudPath = cloudChoiceStrW;
_initialCloudChoice = _nppGUI._cloudPath;
}
}
//}
//-------------------------------------//
@ -2691,12 +2429,66 @@ LangType NppParameters::getLangFromExt(const TCHAR *ext)
return L_TEXT;
}
void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
void NppParameters::setCloudChoice(const TCHAR *pathChoice)
{
generic_string cloudSettingsPath = getCloudSettingsPath(choice);
generic_string cloudChoicePath = getSettingsFolder();
cloudChoicePath += TEXT("\\cloud\\");
if (!PathFileExists(cloudChoicePath.c_str()))
{
::CreateDirectory(cloudChoicePath.c_str(), NULL);
}
cloudChoicePath += TEXT("choice");
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
std::string cloudPathA = wmc->wchar2char(pathChoice, SC_CP_UTF8);
writeFileContent(cloudChoicePath.c_str(), cloudPathA.c_str());
}
void NppParameters::removeCloudChoice()
{
generic_string cloudChoicePath = getSettingsFolder();
cloudChoicePath += TEXT("\\cloud\\choice");
if (PathFileExists(cloudChoicePath.c_str()))
{
::DeleteFile(cloudChoicePath.c_str());
}
}
bool NppParameters::isCloudPathChanged() const
{
if (_initialCloudChoice == _nppGUI._cloudPath)
return false;
else if (_initialCloudChoice.size() - _nppGUI._cloudPath.size() == 1)
{
TCHAR c = _initialCloudChoice.at(_initialCloudChoice.size()-1);
if (c == '\\' || c == '/')
{
if (_initialCloudChoice.find(_nppGUI._cloudPath) == 0)
return false;
}
}
else if (_nppGUI._cloudPath.size() - _initialCloudChoice.size() == 1)
{
TCHAR c = _nppGUI._cloudPath.at(_nppGUI._cloudPath.size() - 1);
if (c == '\\' || c == '/')
{
if (_nppGUI._cloudPath.find(_initialCloudChoice) == 0)
return false;
}
}
return true;
}
bool NppParameters::writeSettingsFilesOnCloudForThe1stTime(const generic_string & cloudSettingsPath)
{
bool isOK = false;
if (cloudSettingsPath == TEXT(""))
{
return;
return false;
}
// config.xml
@ -2704,7 +2496,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudConfigPath, TEXT("config.xml"));
if (!::PathFileExists(cloudConfigPath.c_str()) && _pXmlUserDoc)
{
_pXmlUserDoc->SaveFile(cloudConfigPath.c_str());
isOK = _pXmlUserDoc->SaveFile(cloudConfigPath.c_str());
if (!isOK)
return false;
}
// stylers.xml
@ -2712,7 +2506,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudStylersPath, TEXT("stylers.xml"));
if (!::PathFileExists(cloudStylersPath.c_str()) && _pXmlUserStylerDoc)
{
_pXmlUserStylerDoc->SaveFile(cloudStylersPath.c_str());
isOK = _pXmlUserStylerDoc->SaveFile(cloudStylersPath.c_str());
if (!isOK)
return false;
}
// langs.xml
@ -2720,7 +2516,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudLangsPath, TEXT("langs.xml"));
if (!::PathFileExists(cloudLangsPath.c_str()) && _pXmlUserDoc)
{
_pXmlDoc->SaveFile(cloudLangsPath.c_str());
isOK = _pXmlDoc->SaveFile(cloudLangsPath.c_str());
if (!isOK)
return false;
}
/*
// session.xml: Session stock the absolute file path, it should never be on cloud
@ -2736,7 +2534,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudUserLangsPath, TEXT("userDefineLang.xml"));
if (!::PathFileExists(cloudUserLangsPath.c_str()) && _pXmlUserLangDoc)
{
_pXmlUserLangDoc->SaveFile(cloudUserLangsPath.c_str());
isOK = _pXmlUserLangDoc->SaveFile(cloudUserLangsPath.c_str());
if (!isOK)
return false;
}
// shortcuts.xml
@ -2744,7 +2544,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudShortcutsPath, TEXT("shortcuts.xml"));
if (!::PathFileExists(cloudShortcutsPath.c_str()) && _pXmlShortcutDoc)
{
_pXmlShortcutDoc->SaveFile(cloudShortcutsPath.c_str());
isOK = _pXmlShortcutDoc->SaveFile(cloudShortcutsPath.c_str());
if (!isOK)
return false;
}
// contextMenu.xml
@ -2752,7 +2554,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudContextMenuPath, TEXT("contextMenu.xml"));
if (!::PathFileExists(cloudContextMenuPath.c_str()) && _pXmlContextMenuDocA)
{
_pXmlContextMenuDocA->SaveUnicodeFilePath(cloudContextMenuPath.c_str());
isOK = _pXmlContextMenuDocA->SaveUnicodeFilePath(cloudContextMenuPath.c_str());
if (!isOK)
return false;
}
// nativeLang.xml
@ -2760,7 +2564,9 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
PathAppend(cloudNativeLangPath, TEXT("nativeLang.xml"));
if (!::PathFileExists(cloudNativeLangPath.c_str()) && _pXmlNativeLangDocA)
{
_pXmlNativeLangDocA->SaveUnicodeFilePath(cloudNativeLangPath.c_str());
isOK = _pXmlNativeLangDocA->SaveUnicodeFilePath(cloudNativeLangPath.c_str());
if (!isOK)
return false;
}
/*
@ -2772,6 +2578,7 @@ void NppParameters::writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice)
}
*/
return true;
}
@ -4640,18 +4447,7 @@ void NppParameters::feedScintillaParam(TiXmlNode *node)
else if (!lstrcmp(nm, TEXT("hide")))
_svp._bookMarkMarginShow = false;
}
/*
// doc change state Margin
nm = element->Attribute(TEXT("docChangeStateMargin"));
if (nm)
{
if (!lstrcmp(nm, TEXT("show")))
_svp._docChangeStateMarginShow = true;
else if (!lstrcmp(nm, TEXT("hide")))
_svp._docChangeStateMarginShow = false;
}
*/
// Indent GuideLine
nm = element->Attribute(TEXT("indentGuideLine"));
if (nm)
@ -4787,6 +4583,16 @@ void NppParameters::feedScintillaParam(TiXmlNode *node)
if (val >= 0 && val <= 30)
_svp._borderWidth = val;
}
// Do antialiased font
nm = element->Attribute(TEXT("smoothFont"));
if (nm)
{
if (!lstrcmp(nm, TEXT("yes")))
_svp._doSmoothFont = true;
else if (!lstrcmp(nm, TEXT("no")))
_svp._doSmoothFont = false;
}
}
@ -4906,6 +4712,7 @@ bool NppParameters::writeScintillaParams(const ScintillaViewParams & svp)
(scintNode->ToElement())->SetAttribute(TEXT("disableAdvancedScrolling"), svp._disableAdvancedScrolling?TEXT("yes"):TEXT("no"));
(scintNode->ToElement())->SetAttribute(TEXT("wrapSymbolShow"), svp._wrapSymbolShow?TEXT("show"):TEXT("hide"));
(scintNode->ToElement())->SetAttribute(TEXT("Wrap"), svp._doWrap?TEXT("yes"):TEXT("no"));
TCHAR *edgeStr = NULL;
if (svp._edgeMode == EDGE_NONE)
edgeStr = TEXT("no");
@ -4920,6 +4727,7 @@ bool NppParameters::writeScintillaParams(const ScintillaViewParams & svp)
(scintNode->ToElement())->SetAttribute(TEXT("whiteSpaceShow"), svp._whiteSpaceShow?TEXT("show"):TEXT("hide"));
(scintNode->ToElement())->SetAttribute(TEXT("eolShow"), svp._eolShow?TEXT("show"):TEXT("hide"));
(scintNode->ToElement())->SetAttribute(TEXT("borderWidth"), svp._borderWidth);
(scintNode->ToElement())->SetAttribute(TEXT("smoothFont"), svp._doSmoothFont ? TEXT("yes") : TEXT("no"));
return true;
}

View File

@ -101,7 +101,7 @@ enum ChangeDetect {cdDisabled=0, cdEnabled=1, cdAutoUpdate=2, cdGo2end=3, cdAuto
enum BackupFeature {bak_none = 0, bak_simple = 1, bak_verbose = 2};
enum OpenSaveDirSetting {dir_followCurrent = 0, dir_last = 1, dir_userDef = 2};
enum MultiInstSetting {monoInst = 0, multiInstOnSession = 1, multiInst = 2};
enum CloudChoice {noCloud = 0, dropbox = 1, oneDrive = 2, googleDrive = 3};
//enum CloudChoice {noCloud = 0, dropbox = 1, oneDrive = 2, googleDrive = 3};
const int LANG_INDEX_INSTR = 0;
const int LANG_INDEX_INSTR2 = 1;
@ -671,7 +671,7 @@ struct NppGUI
_checkHistoryFiles(true) ,_enableSmartHilite(true), _disableSmartHiliteTmp(false), _enableTagsMatchHilite(true), _enableTagAttrsHilite(true), _enableHiliteNonHTMLZone(false),\
_isMaximized(false), _isMinimizedToTray(false), _rememberLastSession(true), _isCmdlineNosessionActivated(false), _detectEncoding(true), _backup(bak_none), _useDir(false), _backupDir(TEXT("")),\
_doTaskList(true), _maitainIndent(true), _openSaveDir(dir_followCurrent), _styleMRU(true), _styleURL(0),\
_autocStatus(autoc_both), _autocFromLen(1), _funcParams(false), _definedSessionExt(TEXT("")), _cloudChoice(noCloud), _availableClouds(0),\
_autocStatus(autoc_both), _autocFromLen(1), _funcParams(false), _definedSessionExt(TEXT("")), _cloudPath(TEXT("")), _availableClouds(0),\
_doesExistUpdater(false), _caretBlinkRate(250), _caretWidth(1), _enableMultiSelection(false), _shortTitlebar(false), _themeName(TEXT("")), _isLangMenuCompact(false),\
_smartHiliteCaseSensitive(false), _leftmostDelimiter('('), _rightmostDelimiter(')'), _delimiterSelectionOnEntireDocument(false), _multiInstSetting(monoInst),\
_fileSwitcherWithoutExtColumn(false), _isSnapshotMode(true), _snapshotBackupTiming(7000), _backSlashIsEscapeCharacterForSql(true) {
@ -780,7 +780,7 @@ struct NppGUI
bool isSnapshotMode() const {return _isSnapshotMode && _rememberLastSession && !_isCmdlineNosessionActivated;};
bool _isSnapshotMode;
size_t _snapshotBackupTiming;
CloudChoice _cloudChoice; // this option will never be read/written from/to config.xml
generic_string _cloudPath; // this option will never be read/written from/to config.xml
unsigned char _availableClouds; // this option will never be read/written from/to config.xml
};
@ -790,7 +790,7 @@ struct ScintillaViewParams
_folderStyle(FOLDER_STYLE_BOX), _foldMarginShow(true), _indentGuideLineShow(true),\
_currentLineHilitingShow(true), _wrapSymbolShow(false), _doWrap(false), _edgeNbColumn(80),\
_zoom(0), _zoom2(0), _whiteSpaceShow(false), _eolShow(false), _lineWrapMethod(LINEWRAP_ALIGNED),\
_disableAdvancedScrolling(false){};
_disableAdvancedScrolling(false), _doSmoothFont(false) {};
bool _lineNumberMarginShow;
bool _bookMarkMarginShow;
//bool _docChangeStateMarginShow;
@ -809,6 +809,7 @@ struct ScintillaViewParams
bool _eolShow;
int _borderWidth;
bool _disableAdvancedScrolling;
bool _doSmoothFont;
};
const int NB_LIST = 20;
@ -1159,7 +1160,6 @@ public:
bool reloadLang();
bool reloadStylers(TCHAR *stylePath = NULL);
void destroyInstance();
generic_string getCloudSettingsPath(CloudChoice cloudChoice);
generic_string getSettingsFolder();
bool _isTaskListRBUTTONUP_Active;
@ -1374,6 +1374,7 @@ public:
};
void removeTransparent(HWND hwnd) {
if (hwnd != NULL)
::SetWindowLongPtr(hwnd, GWL_EXSTYLE, ::GetWindowLongPtr(hwnd, GWL_EXSTYLE) & ~0x00080000);
};
@ -1497,7 +1498,10 @@ public:
return _userPath;
};
void writeSettingsFilesOnCloudForThe1stTime(CloudChoice choice);
bool writeSettingsFilesOnCloudForThe1stTime(const generic_string & cloudSettingsPath);
void setCloudChoice(const TCHAR *pathChoice);
void removeCloudChoice();
bool isCloudPathChanged() const;
COLORREF getCurrentDefaultBgColor() const {
return _currentDefaultBgColor;
@ -1618,6 +1622,8 @@ private:
COLORREF _currentDefaultBgColor;
COLORREF _currentDefaultFgColor;
generic_string _initialCloudChoice;
static int CALLBACK EnumFontFamExProc(const LOGFONT* lpelfe, const TEXTMETRIC *, DWORD, LPARAM lParam) {
std::vector<generic_string>& strVect = *(std::vector<generic_string> *)lParam;
const size_t vectSize = strVect.size();

View File

@ -2389,13 +2389,9 @@ void FindReplaceDlg::drawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
ptStr = TEXT("");
}
//printInt(fgColor);
SetTextColor(lpDrawItemStruct->hDC, fgColor);
COLORREF bgColor = getCtrlBgColor(_statusBar.getHSelf());
::SetBkColor(lpDrawItemStruct->hDC, bgColor);
//::SetBkColor(lpDrawItemStruct->hDC, ::GetSysColor(COLOR_3DFACE));
//ExtTextOut(lpDIS->hDC, 0, 0, 0 , &lpDIS->rcItem,ptStr, _tcslen(ptStr), NULL);
RECT rect;
_statusBar.getClientRect(rect);
::DrawText(lpDrawItemStruct->hDC, ptStr, lstrlen(ptStr), &rect, DT_SINGLELINE | DT_VCENTER | DT_LEFT);
@ -3116,21 +3112,7 @@ void Progress::setPercent(unsigned percent, const TCHAR *fileName) const
}
void Progress::flushCallerUserInput() const
{
MSG msg;
for (HWND hwnd = _hCallerWnd; hwnd; hwnd = ::GetParent(hwnd))
{
if (::PeekMessage(&msg, hwnd, 0, 0, PM_QS_INPUT | PM_REMOVE))
{
while (::PeekMessage(&msg, hwnd, 0, 0, PM_QS_INPUT | PM_REMOVE));
::UpdateWindow(hwnd);
}
}
}
DWORD Progress::threadFunc(LPVOID data)
DWORD WINAPI Progress::threadFunc(LPVOID data)
{
Progress* pw = static_cast<Progress*>(data);
return (DWORD)pw->thread();

View File

@ -431,7 +431,6 @@ public:
}
void setPercent(unsigned percent, const TCHAR *fileName) const;
void flushCallerUserInput() const;
private:
static const TCHAR cClassName[];

View File

@ -25,6 +25,7 @@ distribution.
#ifndef TINYXMLA_INCLUDED
#include "tinyxmlA.h"
#endif TINYXMLA_INCLUDED
#include <cassert>
#ifndef TIXMLA_USE_STL

View File

@ -25,6 +25,7 @@ distribution.
#ifndef TINYXML_INCLUDED
#include "tinyxml.h"
#endif //TINYXML_INCLUDED
#include <cassert>
#ifndef TIXML_USE_STL

View File

@ -234,7 +234,6 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
break;
case IDCANCEL :
//::MessageBox(NULL, TEXT("cancel"), TEXT(""), MB_OK);
if (_isDirty)
{
NppParameters *nppParamInst = NppParameters::getInstance();

View File

@ -162,7 +162,7 @@ int FileDialog::setExtsFilter(const TCHAR *extText, const TCHAR *exts)
return _nbExt;
}
TCHAR * FileDialog::doOpenSingleFileDlg()
TCHAR* FileDialog::doOpenSingleFileDlg()
{
TCHAR dir[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, dir);
@ -212,17 +212,22 @@ stringVector * FileDialog::doOpenMultiFilesDlg()
if (res)
{
TCHAR fn[MAX_PATH];
TCHAR *pFn = _fileName + lstrlen(_fileName) + 1;
TCHAR* pFn = _fileName + lstrlen(_fileName) + 1;
TCHAR fn[MAX_PATH*8];
memset(fn, 0x0, sizeof(fn));
if (!(*pFn))
{
_fileNames.push_back(generic_string(_fileName));
}
else
{
lstrcpy(fn, _fileName);
if (fn[lstrlen(fn)-1] != '\\')
if (fn[lstrlen(fn) - 1] != '\\')
lstrcat(fn, TEXT("\\"));
}
int term = int(lstrlen(fn));
int term = lstrlen(fn);
while (*pFn)
{
@ -234,10 +239,10 @@ stringVector * FileDialog::doOpenMultiFilesDlg()
return &_fileNames;
}
else
return NULL;
return nullptr;
}
TCHAR * FileDialog::doSaveDlg()
{
TCHAR dir[MAX_PATH];

View File

@ -80,41 +80,40 @@ IDD_PREFERENCE_MARGEIN_BOX DIALOGEX 0, 0, 455, 185
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "Folder Margin Style",IDC_FMS_GB_STATIC,46,54,83,89,BS_CENTER
CONTROL "Simple",IDC_RADIO_SIMPLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,55,67,59,10
CONTROL "Arrow",IDC_RADIO_ARROW,"Button",BS_AUTORADIOBUTTON,55,81,60,10
CONTROL "Circle tree",IDC_RADIO_CIRCLE,"Button",BS_AUTORADIOBUTTON,55,96,62,10
CONTROL "None",IDC_RADIO_FOLDMARGENONE,"Button",BS_AUTORADIOBUTTON,55,125,61,10
CONTROL "Box tree",IDC_RADIO_BOX,"Button",BS_AUTORADIOBUTTON,55,110,61,10
CONTROL "Display line number",IDC_CHECK_LINENUMBERMARGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,117,141,10
CONTROL "Display bookmark",IDC_CHECK_BOOKMARKMARGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,130,150,10
CONTROL "Enable current line highlighting",IDC_CHECK_CURRENTLINEHILITE,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,143,129,10
CONTROL "Show vertical edge",IDC_CHECK_SHOWVERTICALEDGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,153,66,122,10
RTEXT "Number of columns :",IDC_NBCOLONE_STATIC,148,114,83,8
LTEXT "0",IDC_COLONENUMBER_STATIC,238,113,18,8,WS_TABSTOP
GROUPBOX "Vertical Edge Settings",IDC_VES_GB_STATIC,142,54,148,77,BS_CENTER
CONTROL "Line mode",IDC_RADIO_LNMODE,"Button",BS_AUTORADIOBUTTON,156,82,91,10
CONTROL "Background mode",IDC_RADIO_BGMODE,"Button",BS_AUTORADIOBUTTON,156,96,91,10
GROUPBOX "Caret Settings",IDC_CARETSETTING_STATIC,46,11,199,40,BS_CENTER
LTEXT "Width :",IDC_WIDTH_STATIC,50,30,37,8,0,WS_EX_RIGHT
COMBOBOX IDC_WIDTH_COMBO,89,28,40,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Blink rate :",IDC_BLINKRATE_STATIC,161,23,50,8
CONTROL "",IDC_CARETBLINKRATE_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,156,35,67,13
LTEXT "S",IDC_CARETBLINKRATE_S_STATIC,225,35,12,8
LTEXT "F",IDC_CARETBLINKRATE_F_STATIC,144,35,12,8,0,WS_EX_RIGHT
GROUPBOX "Multi-Editing Settings",IDC_MULTISELECTION_GB_STATIC,253,11,140,40,BS_CENTER
GROUPBOX "Folder Margin Style",IDC_FMS_GB_STATIC,46,44,83,89,BS_CENTER
CONTROL "Simple",IDC_RADIO_SIMPLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,55,57,59,10
CONTROL "Arrow",IDC_RADIO_ARROW,"Button",BS_AUTORADIOBUTTON,55,71,60,10
CONTROL "Circle tree",IDC_RADIO_CIRCLE,"Button",BS_AUTORADIOBUTTON,55,86,62,10
CONTROL "None",IDC_RADIO_FOLDMARGENONE,"Button",BS_AUTORADIOBUTTON,55,115,61,10
CONTROL "Box tree",IDC_RADIO_BOX,"Button",BS_AUTORADIOBUTTON,55,100,61,10
CONTROL "Show vertical edge",IDC_CHECK_SHOWVERTICALEDGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,153,56,122,10
RTEXT "Number of columns :",IDC_NBCOLONE_STATIC,148,104,83,8
LTEXT "0",IDC_COLONENUMBER_STATIC,238,103,18,8,WS_TABSTOP
GROUPBOX "Vertical Edge Settings",IDC_VES_GB_STATIC,142,44,148,77,BS_CENTER
CONTROL "Line mode",IDC_RADIO_LNMODE,"Button",BS_AUTORADIOBUTTON,156,72,91,10
CONTROL "Background mode",IDC_RADIO_BGMODE,"Button",BS_AUTORADIOBUTTON,156,86,91,10
GROUPBOX "Caret Settings",IDC_CARETSETTING_STATIC,46,1,199,40,BS_CENTER
LTEXT "Width :",IDC_WIDTH_STATIC,50,20,37,8,0,WS_EX_RIGHT
COMBOBOX IDC_WIDTH_COMBO,89,18,40,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Blink rate :",IDC_BLINKRATE_STATIC,161,13,50,8
CONTROL "",IDC_CARETBLINKRATE_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,156,25,67,13
LTEXT "S",IDC_CARETBLINKRATE_S_STATIC,225,25,12,8
LTEXT "F",IDC_CARETBLINKRATE_F_STATIC,144,25,12,8,0,WS_EX_RIGHT
GROUPBOX "Multi-Editing Settings",IDC_MULTISELECTION_GB_STATIC,253,1,140,40,BS_CENTER
CONTROL "Enable (Ctrl+Mouse click/selection)",IDC_CHECK_MULTISELECTION,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,261,28,130,10
GROUPBOX "Line Wrap",IDC_LW_GB_STATIC,301,54,92,56,BS_CENTER
CONTROL "Default",IDC_RADIO_LWDEF,"Button",BS_AUTORADIOBUTTON | WS_GROUP,311,67,59,10
CONTROL "Aligned",IDC_RADIO_LWALIGN,"Button",BS_AUTORADIOBUTTON,311,81,60,10
CONTROL "Indent",IDC_RADIO_LWINDENT,"Button",BS_AUTORADIOBUTTON,311,95,62,10
GROUPBOX "Border Width",IDC_BORDERWIDTH_STATIC,142,132,148,30,BS_CENTER
CONTROL "",IDC_BORDERWIDTH_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,156,145,67,13
LTEXT "0",IDC_BORDERWIDTHVAL_STATIC,225,145,12,8
CONTROL "Disable advanced scrolling feature\r(if you have touchpad problem)",IDC_CHECK_DISABLEADVANCEDSCROLL,
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,298,153,139,18
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,261,18,130,10
GROUPBOX "Line Wrap",IDC_LW_GB_STATIC,301,44,92,56,BS_CENTER
CONTROL "Default",IDC_RADIO_LWDEF,"Button",BS_AUTORADIOBUTTON | WS_GROUP,311,57,59,10
CONTROL "Aligned",IDC_RADIO_LWALIGN,"Button",BS_AUTORADIOBUTTON,311,71,60,10
CONTROL "Indent",IDC_RADIO_LWINDENT,"Button",BS_AUTORADIOBUTTON,311,85,62,10
GROUPBOX "Border Width",IDC_BORDERWIDTH_STATIC,142,122,148,30,BS_CENTER
CONTROL "",IDC_BORDERWIDTH_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,156,135,67,13
LTEXT "0",IDC_BORDERWIDTHVAL_STATIC,225,135,12,8
CONTROL "Display line number",IDC_CHECK_LINENUMBERMARGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,107,141,10
CONTROL "Display bookmark",IDC_CHECK_BOOKMARKMARGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,120,150,10
CONTROL "Enable current line highlighting",IDC_CHECK_CURRENTLINEHILITE, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,133,129,10
CONTROL "Enable smooth font",IDC_CHECK_SMOOTHFONT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,298,146,129,10
CONTROL "Disable advanced scrolling feature\r(if you have touchpad problem)",IDC_CHECK_DISABLEADVANCEDSCROLL, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,298,159,139,18
END
IDD_PREFERENCE_SETTING_BOX DIALOGEX 0, 0, 455, 185
@ -163,12 +162,12 @@ BEGIN
CONTROL "Unix/OSX",IDC_RADIO_F_UNIX,"Button",BS_AUTORADIOBUTTON,75,81,50,10
GROUPBOX "Encoding",IDC_ENCODING_STATIC,212,28,175,122,BS_CENTER
CONTROL "ANSI",IDC_RADIO_ANSI,"Button",BS_AUTORADIOBUTTON | WS_GROUP,222,39,80,10
CONTROL "UTF-8 without BOM",IDC_RADIO_UTF8SANSBOM,"Button",BS_AUTORADIOBUTTON,222,53,128,10
CONTROL "UTF-8",IDC_RADIO_UTF8SANSBOM,"Button",BS_AUTORADIOBUTTON,222,53,128,10
CONTROL "Apply to opened ANSI files",IDC_CHECK_OPENANSIASUTF8,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,232,65,124,10
CONTROL "UTF-8",IDC_RADIO_UTF8,"Button",BS_AUTORADIOBUTTON,222,79,62,10
CONTROL "UCS-2 Big Endian",IDC_RADIO_UCS2BIG,"Button",BS_AUTORADIOBUTTON,222,95,103,10
CONTROL "UCS-2 Little Endian",IDC_RADIO_UCS2SMALL,"Button",BS_AUTORADIOBUTTON,222,111,102,10
CONTROL "UTF-8 with BOM",IDC_RADIO_UTF8,"Button",BS_AUTORADIOBUTTON,222,79,62,10
CONTROL "UCS-2 Big Endian with BOM",IDC_RADIO_UCS2BIG,"Button",BS_AUTORADIOBUTTON,222,95,110,10
CONTROL "UCS-2 Little Endian with BOM",IDC_RADIO_UCS2SMALL,"Button",BS_AUTORADIOBUTTON,222,111,110,10
CONTROL "",IDC_RADIO_OTHERCP,"Button",BS_AUTORADIOBUTTON,222,126,10,10
COMBOBOX IDC_COMBO_OTHERCP,236,126,100,140,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Default language :",IDC_DEFAULTLANG_STATIC,57,130,77,8
@ -380,9 +379,9 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "Settings on cloud",IDC_SETTINGSONCLOUD_GB_STATIC,89,44,268,89,BS_CENTER
CONTROL "No Cloud",IDC_NOCLOUD_RADIO,"Button",BS_AUTORADIOBUTTON,125,57,92,10
CONTROL "Dropbox",IDC_DROPBOX_RADIO,"Button",BS_AUTORADIOBUTTON,125,72,92,10
CONTROL "OneDrive",IDC_ONEDRIVE_RADIO,"Button",BS_AUTORADIOBUTTON,125,87,92,10
CONTROL "Google Drive",IDC_GOOGLEDRIVE_RADIO,"Button",BS_AUTORADIOBUTTON,125,102,92,10
CONTROL "Set your cloud location path here:",IDC_WITHCLOUD_RADIO,"Button",BS_AUTORADIOBUTTON,125,72,180,10
EDITTEXT IDC_CLOUDPATH_EDIT,134,88,179,14,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_CLOUDPATH_BROWSE_BUTTON,320,87,16,14
LTEXT "",IDC_SETTINGSONCLOUD_WARNING_STATIC,131,117,135,8
END

View File

@ -566,6 +566,7 @@ void MarginsDlg::initScintParam()
}
::SendDlgItemMessage(_hSelf, id, BM_SETCHECK, TRUE, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMOOTHFONT, BM_SETCHECK, svp._doSmoothFont, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_LINENUMBERMARGE, BM_SETCHECK, svp._lineNumberMarginShow, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_BOOKMARKMARGE, BM_SETCHECK, svp._bookMarkMarginShow, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_CURRENTLINEHILITE, BM_SETCHECK, svp._currentLineHilitingShow, 0);
@ -655,27 +656,29 @@ INT_PTR CALLBACK MarginsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
case WM_COMMAND :
{
ScintillaViewParams & svp = (ScintillaViewParams &)pNppParam->getSVP();
int iView = 1;
switch (wParam)
{
case IDC_CHECK_SMOOTHFONT:
svp._doSmoothFont = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_SMOOTHFONT, BM_GETCHECK, 0, 0));
::SendMessage(::GetParent(_hParent), NPPM_SETSMOOTHFONT, 0, svp._doSmoothFont);
return TRUE;
case IDC_CHECK_LINENUMBERMARGE:
svp._lineNumberMarginShow = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_LINENUMBERMARGE, BM_GETCHECK, 0, 0));
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LINENUMBER, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LINENUMBER, 0);
return TRUE;
case IDC_CHECK_BOOKMARKMARGE:
svp._bookMarkMarginShow = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_BOOKMARKMARGE, BM_GETCHECK, 0, 0));
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_SYMBOLMARGIN, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_SYMBOLMARGIN, 0);
return TRUE;
case IDC_CHECK_CURRENTLINEHILITE:
svp._currentLineHilitingShow = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_CURRENTLINEHILITE, BM_GETCHECK, 0, 0));
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_CURLINE_HILITING, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_CURLINE_HILITING, 0);
return TRUE;
case IDC_CHECK_DISABLEADVANCEDSCROLL:
svp._disableAdvancedScrolling = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_CHECK_DISABLEADVANCEDSCROLL, BM_GETCHECK, 0, 0));
//::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_CURLINE_HILITING, iView);
return TRUE;
case IDC_CHECK_MULTISELECTION :
@ -685,24 +688,24 @@ INT_PTR CALLBACK MarginsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
case IDC_RADIO_SIMPLE:
svp._folderStyle = FOLDER_STYLE_SIMPLE;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_SIMPLE, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_SIMPLE, 0);
return TRUE;
case IDC_RADIO_ARROW:
svp._folderStyle = FOLDER_STYLE_ARROW;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_ARROW, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_ARROW, 0);
return TRUE;
case IDC_RADIO_CIRCLE:
svp._folderStyle = FOLDER_STYLE_CIRCLE;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_CIRCLE, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_CIRCLE, 0);
return TRUE;
case IDC_RADIO_BOX:
svp._folderStyle = FOLDER_STYLE_BOX;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_BOX, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN_BOX, 0);
return TRUE;
case IDC_RADIO_FOLDMARGENONE:
svp._folderStyle = FOLDER_STYLE_NONE;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_FOLDERMAGIN, 0);
return TRUE;
case IDC_CHECK_SHOWVERTICALEDGE:
@ -727,17 +730,17 @@ INT_PTR CALLBACK MarginsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
::EnableWindow(::GetDlgItem(_hSelf, IDC_NBCOLONE_STATIC), isChecked);
::ShowWindow(::GetDlgItem(_hSelf, IDC_COLONENUMBER_STATIC), isChecked);
::SendMessage(_hParent, WM_COMMAND, modeID, iView);
::SendMessage(_hParent, WM_COMMAND, modeID, 0);
return TRUE;
}
case IDC_RADIO_LNMODE:
svp._edgeMode = EDGE_LINE;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_EDGELINE, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_EDGELINE, 0);
return TRUE;
case IDC_RADIO_BGMODE:
svp._edgeMode = EDGE_BACKGROUND;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_EDGEBACKGROUND, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_EDGEBACKGROUND, 0);
return TRUE;
case IDC_COLONENUMBER_STATIC:
@ -765,17 +768,17 @@ INT_PTR CALLBACK MarginsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPa
case IDC_RADIO_LWDEF:
svp._lineWrapMethod = LINEWRAP_DEFAULT;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LWDEF, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LWDEF, 0);
return TRUE;
case IDC_RADIO_LWALIGN:
svp._lineWrapMethod = LINEWRAP_ALIGNED;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LWALIGN, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LWALIGN, 0);
return TRUE;
case IDC_RADIO_LWINDENT:
svp._lineWrapMethod = LINEWRAP_INDENT;
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LWINDENT, iView);
::SendMessage(_hParent, WM_COMMAND, IDM_VIEW_LWINDENT, 0);
return TRUE;
default :
@ -1383,7 +1386,7 @@ INT_PTR CALLBACK RecentFilesHistoryDlg::run_dlgProc(UINT Message, WPARAM wParam,
// Check on launch time settings
::SendDlgItemMessage(_hSelf, IDC_CHECK_DONTCHECKHISTORY, BM_SETCHECK, !nppGUI._checkHistoryFiles, 0);
// Disply in submenu setting
// Display in submenu setting
::SendDlgItemMessage(_hSelf, IDC_CHECK_INSUBMENU, BM_SETCHECK, pNppParam->putRecentFileInSubMenu(), 0);
// Recent File menu entry length setting
@ -2809,109 +2812,111 @@ INT_PTR CALLBACK DelimiterSettingsDlg::run_dlgProc(UINT Message, WPARAM wParam,
INT_PTR CALLBACK SettingsOnCloudDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
{
NppGUI & nppGUI = (NppGUI &)((NppParameters::getInstance())->getNppGUI());
NppParameters * nppParams = NppParameters::getInstance();
NppGUI & nppGUI = (NppGUI &)(nppParams->getNppGUI());
if (HIWORD(wParam) == EN_CHANGE)
{
switch (LOWORD(wParam))
{
case IDC_CLOUDPATH_EDIT:
{
TCHAR inputDir[MAX_PATH] = {'\0'};
TCHAR inputDirExpanded[MAX_PATH] = {'\0'};
::SendDlgItemMessage(_hSelf, IDC_CLOUDPATH_EDIT, WM_GETTEXT, MAX_PATH, (LPARAM)inputDir);
::ExpandEnvironmentStrings(inputDir, inputDirExpanded, MAX_PATH);
if (::PathFileExists(inputDirExpanded))
{
nppGUI._cloudPath = inputDirExpanded;
nppParams->setCloudChoice(inputDirExpanded);
generic_string message = nppParams->isCloudPathChanged() ? TEXT("Please restart Notepad++ to take effect.") : TEXT("");
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
}
else
{
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_WITHCLOUD_RADIO, BM_GETCHECK, 0, 0));
if (isChecked)
{
generic_string message = TEXT("Invalid path.");
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
nppParams->removeCloudChoice();
}
}
return TRUE;
}
}
}
switch (Message)
{
case WM_INITDIALOG :
case WM_INITDIALOG:
{
CloudChoice cloudChoice = nppGUI._cloudChoice;
_initialCloudChoice = nppGUI._cloudChoice;
/*
COLORREF bgColor = getCtrlBgColor(_hSelf);
SetTextColor(hdcStatic, RGB(255, 0, 0));
SetBkColor(hdcStatic, RGB(GetRValue(bgColor) - 30, GetGValue(bgColor) - 30, GetBValue(bgColor) - 30));
*/
::SendDlgItemMessage(_hSelf, IDC_NOCLOUD_RADIO, BM_SETCHECK, cloudChoice == noCloud?BST_CHECKED:BST_UNCHECKED, 0);
// Default settings: no cloud
bool withCloud = false;
::SendDlgItemMessage(_hSelf, IDC_DROPBOX_RADIO, BM_SETCHECK, cloudChoice == dropbox?BST_CHECKED:BST_UNCHECKED, 0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_DROPBOX_RADIO), (nppGUI._availableClouds & DROPBOX_AVAILABLE) != 0);
generic_string message = TEXT("");
::SendDlgItemMessage(_hSelf, IDC_ONEDRIVE_RADIO, BM_SETCHECK, cloudChoice == oneDrive?BST_CHECKED:BST_UNCHECKED, 0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_ONEDRIVE_RADIO), (nppGUI._availableClouds & ONEDRIVE_AVAILABLE) != 0);
withCloud = nppGUI._cloudPath != TEXT("");
if (withCloud)
{
// detect validation of path
if (!::PathFileExists(nppGUI._cloudPath.c_str()))
message = TEXT("Invalid path");
}
::SendDlgItemMessage(_hSelf, IDC_GOOGLEDRIVE_RADIO, BM_SETCHECK, cloudChoice == googleDrive?BST_CHECKED:BST_UNCHECKED, 0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_GOOGLEDRIVE_RADIO), (nppGUI._availableClouds & GOOGLEDRIVE_AVAILABLE) != 0);
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
::SendDlgItemMessage(_hSelf, IDC_NOCLOUD_RADIO, BM_SETCHECK, !withCloud ? BST_CHECKED : BST_UNCHECKED, 0);
::SendDlgItemMessage(_hSelf, IDC_WITHCLOUD_RADIO, BM_SETCHECK, withCloud ? BST_CHECKED : BST_UNCHECKED, 0);
::SendDlgItemMessage(_hSelf, IDC_CLOUDPATH_EDIT, WM_SETTEXT, 0, (LPARAM)nppGUI._cloudPath.c_str());
::EnableWindow(::GetDlgItem(_hSelf, IDC_CLOUDPATH_EDIT), withCloud);
::EnableWindow(::GetDlgItem(_hSelf, IDD_CLOUDPATH_BROWSE_BUTTON), withCloud);
}
break;
case WM_COMMAND :
case WM_COMMAND:
{
switch (wParam)
{
case IDC_NOCLOUD_RADIO :
case IDC_NOCLOUD_RADIO:
{
nppGUI._cloudChoice = noCloud;
removeCloudChoice();
nppGUI._cloudPath = TEXT("");
nppParams->removeCloudChoice();
generic_string message = _initialCloudChoice != nppGUI._cloudChoice?TEXT("Please restart Notepad++ to take effect."):TEXT("");
generic_string message = nppParams->isCloudPathChanged() ? TEXT("Please restart Notepad++ to take effect.") : TEXT("");
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
::SendDlgItemMessage(_hSelf, IDC_CLOUDPATH_EDIT, WM_SETTEXT, 0, (LPARAM)nppGUI._cloudPath.c_str());
::EnableWindow(::GetDlgItem(_hSelf, IDC_CLOUDPATH_EDIT), false);
::EnableWindow(::GetDlgItem(_hSelf, IDD_CLOUDPATH_BROWSE_BUTTON), false);
}
break;
case IDC_DROPBOX_RADIO :
case IDC_WITHCLOUD_RADIO:
{
nppGUI._cloudChoice = dropbox;
setCloudChoice("dropbox");
generic_string message = _initialCloudChoice != nppGUI._cloudChoice?TEXT("Please restart Notepad++ to take effect."):TEXT("");
generic_string message = TEXT("Invalid path.");
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
::EnableWindow(::GetDlgItem(_hSelf, IDC_CLOUDPATH_EDIT), true);
::EnableWindow(::GetDlgItem(_hSelf, IDD_CLOUDPATH_BROWSE_BUTTON), true);
}
break;
case IDC_ONEDRIVE_RADIO :
case IDD_CLOUDPATH_BROWSE_BUTTON:
{
nppGUI._cloudChoice = oneDrive;
setCloudChoice("oneDrive");
generic_string message = _initialCloudChoice != nppGUI._cloudChoice?TEXT("Please restart Notepad++ to take effect."):TEXT("");
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
folderBrowser(_hSelf, IDC_CLOUDPATH_EDIT);
}
break;
case IDC_GOOGLEDRIVE_RADIO :
{
nppGUI._cloudChoice = googleDrive;
setCloudChoice("googleDrive");
generic_string message = _initialCloudChoice != nppGUI._cloudChoice?TEXT("Please restart Notepad++ to take effect."):TEXT("");
::SetDlgItemText(_hSelf, IDC_SETTINGSONCLOUD_WARNING_STATIC, message.c_str());
}
break;
default :
default:
return FALSE;
}
}
break;
}
return FALSE;
}
void SettingsOnCloudDlg::setCloudChoice(const char *choice)
{
generic_string cloudChoicePath = (NppParameters::getInstance())->getSettingsFolder();
cloudChoicePath += TEXT("\\cloud\\");
if (!PathFileExists(cloudChoicePath.c_str()))
{
::CreateDirectory(cloudChoicePath.c_str(), NULL);
}
cloudChoicePath += TEXT("choice");
writeFileContent(cloudChoicePath.c_str(), choice);
}
void SettingsOnCloudDlg::removeCloudChoice()
{
generic_string cloudChoicePath = (NppParameters::getInstance())->getSettingsFolder();
//NppParameters *nppParams = ;
cloudChoicePath += TEXT("\\cloud\\choice");
if (PathFileExists(cloudChoicePath.c_str()))
{
::DeleteFile(cloudChoicePath.c_str());
}
}

View File

@ -216,14 +216,10 @@ private :
class SettingsOnCloudDlg : public StaticDialog
{
public :
SettingsOnCloudDlg(): _initialCloudChoice(noCloud) {};
SettingsOnCloudDlg() {};
private :
CloudChoice _initialCloudChoice;
INT_PTR CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
void setCloudChoice(const char *choice);
void removeCloudChoice();
};
class PreferenceDlg : public StaticDialog

View File

@ -88,7 +88,7 @@
#define IDC_RADIO_LNMODE (IDD_PREFERENCE_MARGEIN_BOX + 12)
#define IDC_RADIO_BGMODE (IDD_PREFERENCE_MARGEIN_BOX + 13)
#define IDC_CHECK_CURRENTLINEHILITE (IDD_PREFERENCE_MARGEIN_BOX + 14)
//#define IDC_COMBO_SCINTILLAVIEWCHOIX (IDD_PREFERENCE_MARGEIN_BOX + 15)
#define IDC_CHECK_SMOOTHFONT (IDD_PREFERENCE_MARGEIN_BOX + 15)
#define IDC_CARETSETTING_STATIC (IDD_PREFERENCE_MARGEIN_BOX + 16)
#define IDC_WIDTH_STATIC (IDD_PREFERENCE_MARGEIN_BOX + 17)
@ -127,10 +127,12 @@
#define IDC_SETTINGSONCLOUD_WARNING_STATIC (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 1)
#define IDC_SETTINGSONCLOUD_GB_STATIC (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 2)
#define IDC_NOCLOUD_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 3)
#define IDC_DROPBOX_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 4)
#define IDC_ONEDRIVE_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 5)
#define IDC_GOOGLEDRIVE_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 6)
//#define IDC_DROPBOX_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 4)
//#define IDC_ONEDRIVE_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 5)
//#define IDC_GOOGLEDRIVE_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 6)
#define IDC_WITHCLOUD_RADIO (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 7)
#define IDC_CLOUDPATH_EDIT (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 8)
#define IDD_CLOUDPATH_BROWSE_BUTTON (IDD_PREFERENCE_SETTINGSONCLOUD_BOX + 9)
#define IDD_PREFERENCE_SETTING_BOX 6300 //(IDD_PREFERENCE_BOX + 300)
#define IDC_TABSETTING_GB_STATIC (IDD_PREFERENCE_SETTING_BOX + 1)

View File

@ -760,7 +760,7 @@ void ProjectPanel::showContextMenu(int x, int y)
}
}
POINT ProjectPanel::getMenuDisplyPoint(int iButton)
POINT ProjectPanel::getMenuDisplayPoint(int iButton)
{
POINT p;
RECT btnRect;
@ -798,14 +798,14 @@ void ProjectPanel::popupMenuCmd(int cmdID)
//
case IDB_PROJECT_BTN:
{
POINT p = getMenuDisplyPoint(0);
POINT p = getMenuDisplayPoint(0);
TrackPopupMenu(_hWorkSpaceMenu, TPM_LEFTALIGN, p.x, p.y, 0, _hSelf, NULL);
}
break;
case IDB_EDIT_BTN:
{
POINT p = getMenuDisplyPoint(1);
POINT p = getMenuDisplayPoint(1);
HMENU hMenu = NULL;
NodeType nodeType = getNodeType(hTreeItem);
if (nodeType == nodeType_project)

View File

@ -133,7 +133,7 @@ protected:
NodeType getNodeType(HTREEITEM hItem);
void setWorkSpaceDirty(bool isDirty);
void popupMenuCmd(int cmdID);
POINT getMenuDisplyPoint(int iButton);
POINT getMenuDisplayPoint(int iButton);
virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
bool buildTreeFrom(TiXmlNode *projectRoot, HTREEITEM hParentItem);
void notified(LPNMHDR notification);

View File

@ -50,7 +50,7 @@ Splitter::Splitter() : Window()
void Splitter::init( HINSTANCE hInst, HWND hPere, int splitterSize,
int iSplitRatio, DWORD dwFlags)
double iSplitRatio, DWORD dwFlags)
{
if (hPere == NULL)
{
@ -100,7 +100,7 @@ void Splitter::init( HINSTANCE hInst, HWND hPere, int splitterSize,
if (_dwFlags & SV_HORIZONTAL) //Horizontal spliter
{
_rect.top = ((_rect.bottom * _splitPercent)/100);
_rect.top = (LONG)((_rect.bottom * _splitPercent)/100);
// y axis determined by the split% of the parent windows height
_rect.left = 0;
@ -115,7 +115,7 @@ void Splitter::init( HINSTANCE hInst, HWND hPere, int splitterSize,
{
// y axis is 0 always
_rect.left = ((_rect.right * _splitPercent)/100);
_rect.left = (LONG)((_rect.right * _splitPercent)/100);
// x axis determined by split% of the parent windows width.
_rect.right = _spiltterSize;
@ -340,7 +340,7 @@ LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lPara
if (pt.y <= (rt.bottom - 5))
{
_rect.top = pt.y;
_splitPercent = ((pt.y * 100 / rt.bottom*100) / 100);
_splitPercent = ((pt.y * 100 / (double)rt.bottom*100) / 100);
}
else
{
@ -361,7 +361,7 @@ LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lPara
if (pt.x <= (rt.right - 5))
{
_rect.left = pt.x;
_splitPercent = ((pt.x*100/rt.right*100)/100);
_splitPercent = ((pt.x*100 / (double)rt.right*100) / 100);
}
else
{
@ -425,7 +425,7 @@ void Splitter::resizeSpliter(RECT *pRect)
//if resizeing should be done proportionately.
if (_dwFlags & SV_RESIZEWTHPERCNT)
_rect.top = ((rect.bottom * _splitPercent)/100);
_rect.top = (LONG)((rect.bottom * _splitPercent)/100);
else // soit la fenetre en haut soit la fenetre en bas qui est fixee
_rect.top = getSplitterFixPosY();
}
@ -438,7 +438,7 @@ void Splitter::resizeSpliter(RECT *pRect)
//if resizeing should be done proportionately.
if (_dwFlags & SV_RESIZEWTHPERCNT)
{
_rect.left = ((rect.right * _splitPercent)/100);
_rect.left = (LONG)((rect.right * _splitPercent)/100);
}
else // soit la fenetre gauche soit la fenetre droit qui est fixee
_rect.left = getSplitterFixPosX();

View File

@ -74,7 +74,7 @@ public:
};
void resizeSpliter(RECT *pRect = NULL);
void init(HINSTANCE hInst, HWND hPere, int splitterSize,
int iSplitRatio, DWORD dwFlags);
double iSplitRatio, DWORD dwFlags);
void rotate();
int getPhisicalSize() const {
return _spiltterSize;
@ -82,7 +82,7 @@ public:
private:
RECT _rect;
int _splitPercent;
double _splitPercent;
int _spiltterSize;
bool _isDraged;
DWORD _dwFlags;

View File

@ -0,0 +1,93 @@
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

File diff suppressed because one or more lines are too long

View File

@ -29,12 +29,12 @@
#ifndef RESOURCE_H
#define RESOURCE_H
#define NOTEPAD_PLUS_VERSION TEXT("Notepad++ v6.7.9.2")
#define NOTEPAD_PLUS_VERSION TEXT("Notepad++ v6.8")
// should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
// ex : #define VERSION_VALUE TEXT("5.63\0")
#define VERSION_VALUE TEXT("6.792\0")
#define VERSION_DIGITALVALUE 6, 7, 9, 2
#define VERSION_VALUE TEXT("6.8\0")
#define VERSION_DIGITALVALUE 6, 8, 0, 0
#ifndef IDC_STATIC
#define IDC_STATIC -1

View File

@ -11,9 +11,9 @@
<Command name="Launch in IE" Ctrl="yes" Alt="yes" Shift="yes" Key="73">iexplore &quot;$(FULL_CURRENT_PATH)&quot;</Command>
<Command name="Launch in Chrome" Ctrl="yes" Alt="yes" Shift="yes" Key="82">chrome &quot;$(FULL_CURRENT_PATH)&quot;</Command>
<Command name="Launch in Safari" Ctrl="yes" Alt="yes" Shift="yes" Key="70">safari &quot;$(FULL_CURRENT_PATH)&quot;</Command>
<Command name="Get php help" Ctrl="no" Alt="yes" Shift="no" Key="112">http://www.php.net/%20$(CURRENT_WORD)</Command>
<Command name="Google Search" Ctrl="no" Alt="yes" Shift="no" Key="113">http://www.google.com/search?q=$(CURRENT_WORD)</Command>
<Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">http://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command>
<Command name="Get php help" Ctrl="no" Alt="yes" Shift="no" Key="112">http://www.php.net/$(CURRENT_WORD)</Command>
<Command name="Google Search" Ctrl="no" Alt="yes" Shift="no" Key="113">https://www.google.com/search?q=$(CURRENT_WORD)</Command>
<Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">https://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command>
<Command name="Open file" Ctrl="no" Alt="yes" Shift="no" Key="116">$(NPP_DIRECTORY)\notepad++.exe $(CURRENT_WORD)</Command>
<Command name="Open in another instance" Ctrl="no" Alt="yes" Shift="no" Key="117">$(NPP_DIRECTORY)\notepad++.exe $(CURRENT_WORD) -nosession -multiInst</Command>
<Command name="Send via Outlook" Ctrl="yes" Alt="yes" Shift="yes" Key="79">outlook /a &quot;$(FULL_CURRENT_PATH)&quot;</Command>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,487 +0,0 @@
/*
** 2006 June 7
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This header file defines the SQLite interface for use by
** shared libraries that want to be imported as extensions into
** an SQLite instance. Shared libraries that intend to be loaded
** as extensions by SQLite should #include this file instead of
** sqlite3.h.
*/
#ifndef _SQLITE3EXT_H_
#define _SQLITE3EXT_H_
#include "sqlite3.h"
typedef struct sqlite3_api_routines sqlite3_api_routines;
/*
** The following structure holds pointers to all of the SQLite API
** routines.
**
** WARNING: In order to maintain backwards compatibility, add new
** interfaces to the end of this structure only. If you insert new
** interfaces in the middle of this structure, then older different
** versions of SQLite will not be able to load each others' shared
** libraries!
*/
struct sqlite3_api_routines {
void * (*aggregate_context)(sqlite3_context*,int nBytes);
int (*aggregate_count)(sqlite3_context*);
int (*bind_blob)(sqlite3_stmt*,int,const void*,int n,void(*)(void*));
int (*bind_double)(sqlite3_stmt*,int,double);
int (*bind_int)(sqlite3_stmt*,int,int);
int (*bind_int64)(sqlite3_stmt*,int,sqlite_int64);
int (*bind_null)(sqlite3_stmt*,int);
int (*bind_parameter_count)(sqlite3_stmt*);
int (*bind_parameter_index)(sqlite3_stmt*,const char*zName);
const char * (*bind_parameter_name)(sqlite3_stmt*,int);
int (*bind_text)(sqlite3_stmt*,int,const char*,int n,void(*)(void*));
int (*bind_text16)(sqlite3_stmt*,int,const void*,int,void(*)(void*));
int (*bind_value)(sqlite3_stmt*,int,const sqlite3_value*);
int (*busy_handler)(sqlite3*,int(*)(void*,int),void*);
int (*busy_timeout)(sqlite3*,int ms);
int (*changes)(sqlite3*);
int (*close)(sqlite3*);
int (*collation_needed)(sqlite3*,void*,void(*)(void*,sqlite3*,
int eTextRep,const char*));
int (*collation_needed16)(sqlite3*,void*,void(*)(void*,sqlite3*,
int eTextRep,const void*));
const void * (*column_blob)(sqlite3_stmt*,int iCol);
int (*column_bytes)(sqlite3_stmt*,int iCol);
int (*column_bytes16)(sqlite3_stmt*,int iCol);
int (*column_count)(sqlite3_stmt*pStmt);
const char * (*column_database_name)(sqlite3_stmt*,int);
const void * (*column_database_name16)(sqlite3_stmt*,int);
const char * (*column_decltype)(sqlite3_stmt*,int i);
const void * (*column_decltype16)(sqlite3_stmt*,int);
double (*column_double)(sqlite3_stmt*,int iCol);
int (*column_int)(sqlite3_stmt*,int iCol);
sqlite_int64 (*column_int64)(sqlite3_stmt*,int iCol);
const char * (*column_name)(sqlite3_stmt*,int);
const void * (*column_name16)(sqlite3_stmt*,int);
const char * (*column_origin_name)(sqlite3_stmt*,int);
const void * (*column_origin_name16)(sqlite3_stmt*,int);
const char * (*column_table_name)(sqlite3_stmt*,int);
const void * (*column_table_name16)(sqlite3_stmt*,int);
const unsigned char * (*column_text)(sqlite3_stmt*,int iCol);
const void * (*column_text16)(sqlite3_stmt*,int iCol);
int (*column_type)(sqlite3_stmt*,int iCol);
sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol);
void * (*commit_hook)(sqlite3*,int(*)(void*),void*);
int (*complete)(const char*sql);
int (*complete16)(const void*sql);
int (*create_collation)(sqlite3*,const char*,int,void*,
int(*)(void*,int,const void*,int,const void*));
int (*create_collation16)(sqlite3*,const void*,int,void*,
int(*)(void*,int,const void*,int,const void*));
int (*create_function)(sqlite3*,const char*,int,int,void*,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*));
int (*create_function16)(sqlite3*,const void*,int,int,void*,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*));
int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*);
int (*data_count)(sqlite3_stmt*pStmt);
sqlite3 * (*db_handle)(sqlite3_stmt*);
int (*declare_vtab)(sqlite3*,const char*);
int (*enable_shared_cache)(int);
int (*errcode)(sqlite3*db);
const char * (*errmsg)(sqlite3*);
const void * (*errmsg16)(sqlite3*);
int (*exec)(sqlite3*,const char*,sqlite3_callback,void*,char**);
int (*expired)(sqlite3_stmt*);
int (*finalize)(sqlite3_stmt*pStmt);
void (*free)(void*);
void (*free_table)(char**result);
int (*get_autocommit)(sqlite3*);
void * (*get_auxdata)(sqlite3_context*,int);
int (*get_table)(sqlite3*,const char*,char***,int*,int*,char**);
int (*global_recover)(void);
void (*interruptx)(sqlite3*);
sqlite_int64 (*last_insert_rowid)(sqlite3*);
const char * (*libversion)(void);
int (*libversion_number)(void);
void *(*malloc)(int);
char * (*mprintf)(const char*,...);
int (*open)(const char*,sqlite3**);
int (*open16)(const void*,sqlite3**);
int (*prepare)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
int (*prepare16)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
void * (*profile)(sqlite3*,void(*)(void*,const char*,sqlite_uint64),void*);
void (*progress_handler)(sqlite3*,int,int(*)(void*),void*);
void *(*realloc)(void*,int);
int (*reset)(sqlite3_stmt*pStmt);
void (*result_blob)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_double)(sqlite3_context*,double);
void (*result_error)(sqlite3_context*,const char*,int);
void (*result_error16)(sqlite3_context*,const void*,int);
void (*result_int)(sqlite3_context*,int);
void (*result_int64)(sqlite3_context*,sqlite_int64);
void (*result_null)(sqlite3_context*);
void (*result_text)(sqlite3_context*,const char*,int,void(*)(void*));
void (*result_text16)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_value)(sqlite3_context*,sqlite3_value*);
void * (*rollback_hook)(sqlite3*,void(*)(void*),void*);
int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
const char*,const char*),void*);
void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*));
char * (*snprintf)(int,char*,const char*,...);
int (*step)(sqlite3_stmt*);
int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
char const**,char const**,int*,int*,int*);
void (*thread_cleanup)(void);
int (*total_changes)(sqlite3*);
void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*);
int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*);
void * (*update_hook)(sqlite3*,void(*)(void*,int ,char const*,char const*,
sqlite_int64),void*);
void * (*user_data)(sqlite3_context*);
const void * (*value_blob)(sqlite3_value*);
int (*value_bytes)(sqlite3_value*);
int (*value_bytes16)(sqlite3_value*);
double (*value_double)(sqlite3_value*);
int (*value_int)(sqlite3_value*);
sqlite_int64 (*value_int64)(sqlite3_value*);
int (*value_numeric_type)(sqlite3_value*);
const unsigned char * (*value_text)(sqlite3_value*);
const void * (*value_text16)(sqlite3_value*);
const void * (*value_text16be)(sqlite3_value*);
const void * (*value_text16le)(sqlite3_value*);
int (*value_type)(sqlite3_value*);
char *(*vmprintf)(const char*,va_list);
/* Added ??? */
int (*overload_function)(sqlite3*, const char *zFuncName, int nArg);
/* Added by 3.3.13 */
int (*prepare_v2)(sqlite3*,const char*,int,sqlite3_stmt**,const char**);
int (*prepare16_v2)(sqlite3*,const void*,int,sqlite3_stmt**,const void**);
int (*clear_bindings)(sqlite3_stmt*);
/* Added by 3.4.1 */
int (*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,
void (*xDestroy)(void *));
/* Added by 3.5.0 */
int (*bind_zeroblob)(sqlite3_stmt*,int,int);
int (*blob_bytes)(sqlite3_blob*);
int (*blob_close)(sqlite3_blob*);
int (*blob_open)(sqlite3*,const char*,const char*,const char*,sqlite3_int64,
int,sqlite3_blob**);
int (*blob_read)(sqlite3_blob*,void*,int,int);
int (*blob_write)(sqlite3_blob*,const void*,int,int);
int (*create_collation_v2)(sqlite3*,const char*,int,void*,
int(*)(void*,int,const void*,int,const void*),
void(*)(void*));
int (*file_control)(sqlite3*,const char*,int,void*);
sqlite3_int64 (*memory_highwater)(int);
sqlite3_int64 (*memory_used)(void);
sqlite3_mutex *(*mutex_alloc)(int);
void (*mutex_enter)(sqlite3_mutex*);
void (*mutex_free)(sqlite3_mutex*);
void (*mutex_leave)(sqlite3_mutex*);
int (*mutex_try)(sqlite3_mutex*);
int (*open_v2)(const char*,sqlite3**,int,const char*);
int (*release_memory)(int);
void (*result_error_nomem)(sqlite3_context*);
void (*result_error_toobig)(sqlite3_context*);
int (*sleep)(int);
void (*soft_heap_limit)(int);
sqlite3_vfs *(*vfs_find)(const char*);
int (*vfs_register)(sqlite3_vfs*,int);
int (*vfs_unregister)(sqlite3_vfs*);
int (*xthreadsafe)(void);
void (*result_zeroblob)(sqlite3_context*,int);
void (*result_error_code)(sqlite3_context*,int);
int (*test_control)(int, ...);
void (*randomness)(int,void*);
sqlite3 *(*context_db_handle)(sqlite3_context*);
int (*extended_result_codes)(sqlite3*,int);
int (*limit)(sqlite3*,int,int);
sqlite3_stmt *(*next_stmt)(sqlite3*,sqlite3_stmt*);
const char *(*sql)(sqlite3_stmt*);
int (*status)(int,int*,int*,int);
int (*backup_finish)(sqlite3_backup*);
sqlite3_backup *(*backup_init)(sqlite3*,const char*,sqlite3*,const char*);
int (*backup_pagecount)(sqlite3_backup*);
int (*backup_remaining)(sqlite3_backup*);
int (*backup_step)(sqlite3_backup*,int);
const char *(*compileoption_get)(int);
int (*compileoption_used)(const char*);
int (*create_function_v2)(sqlite3*,const char*,int,int,void*,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*),
void(*xDestroy)(void*));
int (*db_config)(sqlite3*,int,...);
sqlite3_mutex *(*db_mutex)(sqlite3*);
int (*db_status)(sqlite3*,int,int*,int*,int);
int (*extended_errcode)(sqlite3*);
void (*log)(int,const char*,...);
sqlite3_int64 (*soft_heap_limit64)(sqlite3_int64);
const char *(*sourceid)(void);
int (*stmt_status)(sqlite3_stmt*,int,int);
int (*strnicmp)(const char*,const char*,int);
int (*unlock_notify)(sqlite3*,void(*)(void**,int),void*);
int (*wal_autocheckpoint)(sqlite3*,int);
int (*wal_checkpoint)(sqlite3*,const char*);
void *(*wal_hook)(sqlite3*,int(*)(void*,sqlite3*,const char*,int),void*);
int (*blob_reopen)(sqlite3_blob*,sqlite3_int64);
int (*vtab_config)(sqlite3*,int op,...);
int (*vtab_on_conflict)(sqlite3*);
/* Version 3.7.16 and later */
int (*close_v2)(sqlite3*);
const char *(*db_filename)(sqlite3*,const char*);
int (*db_readonly)(sqlite3*,const char*);
int (*db_release_memory)(sqlite3*);
const char *(*errstr)(int);
int (*stmt_busy)(sqlite3_stmt*);
int (*stmt_readonly)(sqlite3_stmt*);
int (*stricmp)(const char*,const char*);
int (*uri_boolean)(const char*,const char*,int);
sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
const char *(*uri_parameter)(const char*,const char*);
char *(*vsnprintf)(int,char*,const char*,va_list);
int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
};
/*
** The following macros redefine the API routines so that they are
** redirected throught the global sqlite3_api structure.
**
** This header file is also used by the loadext.c source file
** (part of the main SQLite library - not an extension) so that
** it can get access to the sqlite3_api_routines structure
** definition. But the main library does not want to redefine
** the API. So the redefinition macros are only valid if the
** SQLITE_CORE macros is undefined.
*/
#ifndef SQLITE_CORE
#define sqlite3_aggregate_context sqlite3_api->aggregate_context
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_aggregate_count sqlite3_api->aggregate_count
#endif
#define sqlite3_bind_blob sqlite3_api->bind_blob
#define sqlite3_bind_double sqlite3_api->bind_double
#define sqlite3_bind_int sqlite3_api->bind_int
#define sqlite3_bind_int64 sqlite3_api->bind_int64
#define sqlite3_bind_null sqlite3_api->bind_null
#define sqlite3_bind_parameter_count sqlite3_api->bind_parameter_count
#define sqlite3_bind_parameter_index sqlite3_api->bind_parameter_index
#define sqlite3_bind_parameter_name sqlite3_api->bind_parameter_name
#define sqlite3_bind_text sqlite3_api->bind_text
#define sqlite3_bind_text16 sqlite3_api->bind_text16
#define sqlite3_bind_value sqlite3_api->bind_value
#define sqlite3_busy_handler sqlite3_api->busy_handler
#define sqlite3_busy_timeout sqlite3_api->busy_timeout
#define sqlite3_changes sqlite3_api->changes
#define sqlite3_close sqlite3_api->close
#define sqlite3_collation_needed sqlite3_api->collation_needed
#define sqlite3_collation_needed16 sqlite3_api->collation_needed16
#define sqlite3_column_blob sqlite3_api->column_blob
#define sqlite3_column_bytes sqlite3_api->column_bytes
#define sqlite3_column_bytes16 sqlite3_api->column_bytes16
#define sqlite3_column_count sqlite3_api->column_count
#define sqlite3_column_database_name sqlite3_api->column_database_name
#define sqlite3_column_database_name16 sqlite3_api->column_database_name16
#define sqlite3_column_decltype sqlite3_api->column_decltype
#define sqlite3_column_decltype16 sqlite3_api->column_decltype16
#define sqlite3_column_double sqlite3_api->column_double
#define sqlite3_column_int sqlite3_api->column_int
#define sqlite3_column_int64 sqlite3_api->column_int64
#define sqlite3_column_name sqlite3_api->column_name
#define sqlite3_column_name16 sqlite3_api->column_name16
#define sqlite3_column_origin_name sqlite3_api->column_origin_name
#define sqlite3_column_origin_name16 sqlite3_api->column_origin_name16
#define sqlite3_column_table_name sqlite3_api->column_table_name
#define sqlite3_column_table_name16 sqlite3_api->column_table_name16
#define sqlite3_column_text sqlite3_api->column_text
#define sqlite3_column_text16 sqlite3_api->column_text16
#define sqlite3_column_type sqlite3_api->column_type
#define sqlite3_column_value sqlite3_api->column_value
#define sqlite3_commit_hook sqlite3_api->commit_hook
#define sqlite3_complete sqlite3_api->complete
#define sqlite3_complete16 sqlite3_api->complete16
#define sqlite3_create_collation sqlite3_api->create_collation
#define sqlite3_create_collation16 sqlite3_api->create_collation16
#define sqlite3_create_function sqlite3_api->create_function
#define sqlite3_create_function16 sqlite3_api->create_function16
#define sqlite3_create_module sqlite3_api->create_module
#define sqlite3_create_module_v2 sqlite3_api->create_module_v2
#define sqlite3_data_count sqlite3_api->data_count
#define sqlite3_db_handle sqlite3_api->db_handle
#define sqlite3_declare_vtab sqlite3_api->declare_vtab
#define sqlite3_enable_shared_cache sqlite3_api->enable_shared_cache
#define sqlite3_errcode sqlite3_api->errcode
#define sqlite3_errmsg sqlite3_api->errmsg
#define sqlite3_errmsg16 sqlite3_api->errmsg16
#define sqlite3_exec sqlite3_api->exec
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_expired sqlite3_api->expired
#endif
#define sqlite3_finalize sqlite3_api->finalize
#define sqlite3_free sqlite3_api->free
#define sqlite3_free_table sqlite3_api->free_table
#define sqlite3_get_autocommit sqlite3_api->get_autocommit
#define sqlite3_get_auxdata sqlite3_api->get_auxdata
#define sqlite3_get_table sqlite3_api->get_table
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_global_recover sqlite3_api->global_recover
#endif
#define sqlite3_interrupt sqlite3_api->interruptx
#define sqlite3_last_insert_rowid sqlite3_api->last_insert_rowid
#define sqlite3_libversion sqlite3_api->libversion
#define sqlite3_libversion_number sqlite3_api->libversion_number
#define sqlite3_malloc sqlite3_api->malloc
#define sqlite3_mprintf sqlite3_api->mprintf
#define sqlite3_open sqlite3_api->open
#define sqlite3_open16 sqlite3_api->open16
#define sqlite3_prepare sqlite3_api->prepare
#define sqlite3_prepare16 sqlite3_api->prepare16
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
#define sqlite3_profile sqlite3_api->profile
#define sqlite3_progress_handler sqlite3_api->progress_handler
#define sqlite3_realloc sqlite3_api->realloc
#define sqlite3_reset sqlite3_api->reset
#define sqlite3_result_blob sqlite3_api->result_blob
#define sqlite3_result_double sqlite3_api->result_double
#define sqlite3_result_error sqlite3_api->result_error
#define sqlite3_result_error16 sqlite3_api->result_error16
#define sqlite3_result_int sqlite3_api->result_int
#define sqlite3_result_int64 sqlite3_api->result_int64
#define sqlite3_result_null sqlite3_api->result_null
#define sqlite3_result_text sqlite3_api->result_text
#define sqlite3_result_text16 sqlite3_api->result_text16
#define sqlite3_result_text16be sqlite3_api->result_text16be
#define sqlite3_result_text16le sqlite3_api->result_text16le
#define sqlite3_result_value sqlite3_api->result_value
#define sqlite3_rollback_hook sqlite3_api->rollback_hook
#define sqlite3_set_authorizer sqlite3_api->set_authorizer
#define sqlite3_set_auxdata sqlite3_api->set_auxdata
#define sqlite3_snprintf sqlite3_api->snprintf
#define sqlite3_step sqlite3_api->step
#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata
#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup
#define sqlite3_total_changes sqlite3_api->total_changes
#define sqlite3_trace sqlite3_api->trace
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_transfer_bindings sqlite3_api->transfer_bindings
#endif
#define sqlite3_update_hook sqlite3_api->update_hook
#define sqlite3_user_data sqlite3_api->user_data
#define sqlite3_value_blob sqlite3_api->value_blob
#define sqlite3_value_bytes sqlite3_api->value_bytes
#define sqlite3_value_bytes16 sqlite3_api->value_bytes16
#define sqlite3_value_double sqlite3_api->value_double
#define sqlite3_value_int sqlite3_api->value_int
#define sqlite3_value_int64 sqlite3_api->value_int64
#define sqlite3_value_numeric_type sqlite3_api->value_numeric_type
#define sqlite3_value_text sqlite3_api->value_text
#define sqlite3_value_text16 sqlite3_api->value_text16
#define sqlite3_value_text16be sqlite3_api->value_text16be
#define sqlite3_value_text16le sqlite3_api->value_text16le
#define sqlite3_value_type sqlite3_api->value_type
#define sqlite3_vmprintf sqlite3_api->vmprintf
#define sqlite3_overload_function sqlite3_api->overload_function
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
#define sqlite3_clear_bindings sqlite3_api->clear_bindings
#define sqlite3_bind_zeroblob sqlite3_api->bind_zeroblob
#define sqlite3_blob_bytes sqlite3_api->blob_bytes
#define sqlite3_blob_close sqlite3_api->blob_close
#define sqlite3_blob_open sqlite3_api->blob_open
#define sqlite3_blob_read sqlite3_api->blob_read
#define sqlite3_blob_write sqlite3_api->blob_write
#define sqlite3_create_collation_v2 sqlite3_api->create_collation_v2
#define sqlite3_file_control sqlite3_api->file_control
#define sqlite3_memory_highwater sqlite3_api->memory_highwater
#define sqlite3_memory_used sqlite3_api->memory_used
#define sqlite3_mutex_alloc sqlite3_api->mutex_alloc
#define sqlite3_mutex_enter sqlite3_api->mutex_enter
#define sqlite3_mutex_free sqlite3_api->mutex_free
#define sqlite3_mutex_leave sqlite3_api->mutex_leave
#define sqlite3_mutex_try sqlite3_api->mutex_try
#define sqlite3_open_v2 sqlite3_api->open_v2
#define sqlite3_release_memory sqlite3_api->release_memory
#define sqlite3_result_error_nomem sqlite3_api->result_error_nomem
#define sqlite3_result_error_toobig sqlite3_api->result_error_toobig
#define sqlite3_sleep sqlite3_api->sleep
#define sqlite3_soft_heap_limit sqlite3_api->soft_heap_limit
#define sqlite3_vfs_find sqlite3_api->vfs_find
#define sqlite3_vfs_register sqlite3_api->vfs_register
#define sqlite3_vfs_unregister sqlite3_api->vfs_unregister
#define sqlite3_threadsafe sqlite3_api->xthreadsafe
#define sqlite3_result_zeroblob sqlite3_api->result_zeroblob
#define sqlite3_result_error_code sqlite3_api->result_error_code
#define sqlite3_test_control sqlite3_api->test_control
#define sqlite3_randomness sqlite3_api->randomness
#define sqlite3_context_db_handle sqlite3_api->context_db_handle
#define sqlite3_extended_result_codes sqlite3_api->extended_result_codes
#define sqlite3_limit sqlite3_api->limit
#define sqlite3_next_stmt sqlite3_api->next_stmt
#define sqlite3_sql sqlite3_api->sql
#define sqlite3_status sqlite3_api->status
#define sqlite3_backup_finish sqlite3_api->backup_finish
#define sqlite3_backup_init sqlite3_api->backup_init
#define sqlite3_backup_pagecount sqlite3_api->backup_pagecount
#define sqlite3_backup_remaining sqlite3_api->backup_remaining
#define sqlite3_backup_step sqlite3_api->backup_step
#define sqlite3_compileoption_get sqlite3_api->compileoption_get
#define sqlite3_compileoption_used sqlite3_api->compileoption_used
#define sqlite3_create_function_v2 sqlite3_api->create_function_v2
#define sqlite3_db_config sqlite3_api->db_config
#define sqlite3_db_mutex sqlite3_api->db_mutex
#define sqlite3_db_status sqlite3_api->db_status
#define sqlite3_extended_errcode sqlite3_api->extended_errcode
#define sqlite3_log sqlite3_api->log
#define sqlite3_soft_heap_limit64 sqlite3_api->soft_heap_limit64
#define sqlite3_sourceid sqlite3_api->sourceid
#define sqlite3_stmt_status sqlite3_api->stmt_status
#define sqlite3_strnicmp sqlite3_api->strnicmp
#define sqlite3_unlock_notify sqlite3_api->unlock_notify
#define sqlite3_wal_autocheckpoint sqlite3_api->wal_autocheckpoint
#define sqlite3_wal_checkpoint sqlite3_api->wal_checkpoint
#define sqlite3_wal_hook sqlite3_api->wal_hook
#define sqlite3_blob_reopen sqlite3_api->blob_reopen
#define sqlite3_vtab_config sqlite3_api->vtab_config
#define sqlite3_vtab_on_conflict sqlite3_api->vtab_on_conflict
/* Version 3.7.16 and later */
#define sqlite3_close_v2 sqlite3_api->close_v2
#define sqlite3_db_filename sqlite3_api->db_filename
#define sqlite3_db_readonly sqlite3_api->db_readonly
#define sqlite3_db_release_memory sqlite3_api->db_release_memory
#define sqlite3_errstr sqlite3_api->errstr
#define sqlite3_stmt_busy sqlite3_api->stmt_busy
#define sqlite3_stmt_readonly sqlite3_api->stmt_readonly
#define sqlite3_stricmp sqlite3_api->stricmp
#define sqlite3_uri_boolean sqlite3_api->uri_boolean
#define sqlite3_uri_int64 sqlite3_api->uri_int64
#define sqlite3_uri_parameter sqlite3_api->uri_parameter
#define sqlite3_uri_vsnprintf sqlite3_api->vsnprintf
#define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2
#endif /* SQLITE_CORE */
#ifndef SQLITE_CORE
/* This case when the file really is being compiled as a loadable
** extension */
# define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0;
# define SQLITE_EXTENSION_INIT2(v) sqlite3_api=v;
# define SQLITE_EXTENSION_INIT3 \
extern const sqlite3_api_routines *sqlite3_api;
#else
/* This case when the file is being statically linked into the
** application */
# define SQLITE_EXTENSION_INIT1 /*no-op*/
# define SQLITE_EXTENSION_INIT2(v) (void)v; /* unused parameter */
# define SQLITE_EXTENSION_INIT3 /*no-op*/
#endif
#endif /* _SQLITE3EXT_H_ */

View File

@ -799,10 +799,10 @@
</LexerStyles>
<GlobalStyles>
<!-- Attention : Don't modify the name of styleID="0" -->
<WidgetStyle name="Global override" styleID="0" fgColor="FFFF80" bgColor="FF8000" fontName="Courier New" fontStyle="0" fontSize="10" />
<WidgetStyle name="Default Style" styleID="32" fgColor="000000" bgColor="FFFFFF" fontName="Courier New" fontStyle="0" fontSize="10" />
<WidgetStyle name="Global override" styleID="0" fgColor="FFFF80" bgColor="FF8000" fontName="Source Code Pro" fontStyle="0" fontSize="10" />
<WidgetStyle name="Default Style" styleID="32" fgColor="000000" bgColor="FFFFFF" fontName="Source Code Pro" fontStyle="0" fontSize="10" />
<WidgetStyle name="Indent guideline style" styleID="37" fgColor="C0C0C0" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WidgetStyle name="Brace highlight style" styleID="34" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="12" />
<WidgetStyle name="Brace highlight style" styleID="34" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="10" />
<WidgetStyle name="Bad brace colour" styleID="35" fgColor="800000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WidgetStyle name="Current line background colour" styleID="0" bgColor="E8E8FF" />
<WidgetStyle name="Selected text colour" styleID="0" bgColor="C0C0C0" />

View File

@ -76,6 +76,8 @@
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">
<OutDir>x64\$(Configuration)\</OutDir>
<IntDir>x64\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">
@ -84,6 +86,8 @@
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Release|x64'">
<OutDir>..\bin64\</OutDir>
<IntDir>x64\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|Win32'">
@ -200,6 +204,10 @@ copy ..\src\stylers.model.xml ..\bin\stylers.model.xml
copy ..\src\shortcuts.xml ..\bin\shortcuts.xml
copy ..\src\functionList.xml ..\bin\functionList.xml
copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
copy ..\src\fonts\sourceCodePro\SourceCodePro-Regular.ttf ..\bin\SourceCodePro-Regular.ttf
copy ..\src\fonts\sourceCodePro\SourceCodePro-Bold.ttf ..\bin\SourceCodePro-Bold.ttf
copy ..\src\fonts\sourceCodePro\SourceCodePro-It.ttf ..\bin\SourceCodePro-It.ttf
copy ..\src\fonts\sourceCodePro\SourceCodePro-BoldIt.ttf ..\bin\SourceCodePro-BoldIt.ttf
..\misc\vistaIconTool\changeIcon.bat "..\misc\vistaIconTool\ChangeIcon.exe" "$(OutDir)notepad++.exe"
</Command>
</PostBuildEvent>
@ -244,12 +252,12 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<AdditionalManifestFiles>..\src\dpiAware.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
<PostBuildEvent>
<Command>copy ..\src\config.model.xml ..\bin\config.model.xml
copy ..\src\langs.model.xml ..\bin\langs.model.xml
copy ..\src\stylers.model.xml ..\bin\stylers.model.xml
copy ..\src\shortcuts.xml ..\bin\shortcuts.xml
copy ..\src\functionList.xml ..\bin\functionList.xml
copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<Command>copy ..\src\config.model.xml ..\bin64\config.model.xml
copy ..\src\langs.model.xml ..\bin64\langs.model.xml
copy ..\src\stylers.model.xml ..\bin64\stylers.model.xml
copy ..\src\shortcuts.xml ..\bin64\shortcuts.xml
copy ..\src\functionList.xml ..\bin64\functionList.xml
copy ..\src\contextMenu.xml ..\bin64\contextMenu.xml
..\misc\vistaIconTool\changeIcon.bat "..\misc\vistaIconTool\ChangeIcon.exe" "$(OutDir)notepad++.exe"
</Command>
</PostBuildEvent>
@ -339,20 +347,6 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<ClCompile Include="..\src\ScitillaComponent\SmartHighlighter.cpp" />
<ClCompile Include="..\src\WinControls\SplitterContainer\Splitter.cpp" />
<ClCompile Include="..\src\WinControls\SplitterContainer\SplitterContainer.cpp" />
<ClCompile Include="..\src\sqlite\sqlite3.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">
</PrecompiledHeader>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|Win32'">TurnOffAllWarnings</WarningLevel>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">TurnOffAllWarnings</WarningLevel>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Release|x64'">
</PrecompiledHeader>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">TurnOffAllWarnings</WarningLevel>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Release|x64'">TurnOffAllWarnings</WarningLevel>
</ClCompile>
<ClCompile Include="..\src\WinControls\StaticDialog\StaticDialog.cpp" />
<ClCompile Include="..\src\WinControls\StatusBar\StatusBar.cpp" />
<ClCompile Include="..\src\WinControls\TabBar\TabBar.cpp" />
@ -535,7 +529,6 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<ClInclude Include="..\src\MISC\Common\LongRunningOperation.h" />
<ClInclude Include="..\src\MISC\Common\mutex.h" />
<ClInclude Include="..\src\MISC\Common\mutex.hxx" />
<ClInclude Include="..\src\ScitillaComponent\resource.h" />
<ClInclude Include="..\src\WinControls\AboutDlg\AboutDlg.h" />
<ClInclude Include="..\src\WinControls\AnsiCharPanel\ansiCharPanel.h" />
<ClInclude Include="..\src\ScitillaComponent\AutoCompletion.h" />
@ -626,7 +619,6 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<ClInclude Include="..\src\ScitillaComponent\SmartHighlighter.h" />
<ClInclude Include="..\src\WinControls\SplitterContainer\Splitter.h" />
<ClInclude Include="..\src\WinControls\SplitterContainer\SplitterContainer.h" />
<ClInclude Include="..\src\sqlite\sqlite3.h" />
<ClInclude Include="..\src\WinControls\StaticDialog\StaticDialog.h" />
<ClInclude Include="..\src\WinControls\StatusBar\StatusBar.h" />
<ClInclude Include="..\src\WinControls\TabBar\TabBar.h" />

File diff suppressed because it is too large Load Diff

View File

@ -76,6 +76,8 @@
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">
<OutDir>x64\$(Configuration)\</OutDir>
<IntDir>x64\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">
@ -84,6 +86,8 @@
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Release|x64'">
<OutDir>..\bin64\</OutDir>
<IntDir>x64\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|Win32'">
@ -91,7 +95,7 @@
<Optimization>Disabled</Optimization>
<FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher;..\src\WinControls\ProjectPanel;..\src\WinControls\DocumentMap;..\src\WinControls\FunctionList;..\src\uchardet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;_CRT_NON_CONFORMING_WCSTOK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -126,7 +130,7 @@
<Optimization>Disabled</Optimization>
<FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher;..\src\WinControls\ProjectPanel;..\src\WinControls\DocumentMap;..\src\WinControls\FunctionList;..\src\uchardet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;_CRT_NON_CONFORMING_WCSTOK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -164,7 +168,7 @@
<OmitFramePointers>false</OmitFramePointers>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher;..\src\WinControls\ProjectPanel;..\src\WinControls\DocumentMap;..\src\WinControls\FunctionList;..\src\uchardet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;_CRT_NON_CONFORMING_WCSTOK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<StringPooling>true</StringPooling>
@ -203,6 +207,10 @@ copy ..\src\stylers.model.xml ..\bin\stylers.model.xml
copy ..\src\shortcuts.xml ..\bin\shortcuts.xml
copy ..\src\functionList.xml ..\bin\functionList.xml
copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
copy ..\src\fonts\sourceCodePro\SourceCodePro-Regular.ttf ..\bin\SourceCodePro-Regular.ttf
copy ..\src\fonts\sourceCodePro\SourceCodePro-Bold.ttf ..\bin\SourceCodePro-Bold.ttf
copy ..\src\fonts\sourceCodePro\SourceCodePro-It.ttf ..\bin\SourceCodePro-It.ttf
copy ..\src\fonts\sourceCodePro\SourceCodePro-BoldIt.ttf ..\bin\SourceCodePro-BoldIt.ttf
..\misc\vistaIconTool\changeIcon.bat "..\misc\vistaIconTool\ChangeIcon.exe" "$(OutDir)notepad++.exe"
</Command>
</PostBuildEvent>
@ -215,7 +223,7 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<OmitFramePointers>false</OmitFramePointers>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher;..\src\WinControls\ProjectPanel;..\src\WinControls\DocumentMap;..\src\WinControls\FunctionList;..\src\uchardet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;_CRT_NON_CONFORMING_WCSTOK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<StringPooling>true</StringPooling>
@ -248,12 +256,12 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<AdditionalManifestFiles>..\src\dpiAware.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
<PostBuildEvent>
<Command>copy ..\src\config.model.xml ..\bin\config.model.xml
copy ..\src\langs.model.xml ..\bin\langs.model.xml
copy ..\src\stylers.model.xml ..\bin\stylers.model.xml
copy ..\src\shortcuts.xml ..\bin\shortcuts.xml
copy ..\src\functionList.xml ..\bin\functionList.xml
copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<Command>copy ..\src\config.model.xml ..\bin64\config.model.xml
copy ..\src\langs.model.xml ..\bin64\langs.model.xml
copy ..\src\stylers.model.xml ..\bin64\stylers.model.xml
copy ..\src\shortcuts.xml ..\bin64\shortcuts.xml
copy ..\src\functionList.xml ..\bin64\functionList.xml
copy ..\src\contextMenu.xml ..\bin64\contextMenu.xml
..\misc\vistaIconTool\changeIcon.bat "..\misc\vistaIconTool\ChangeIcon.exe" "$(OutDir)notepad++.exe"
</Command>
</PostBuildEvent>
@ -343,20 +351,6 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<ClCompile Include="..\src\ScitillaComponent\SmartHighlighter.cpp" />
<ClCompile Include="..\src\WinControls\SplitterContainer\Splitter.cpp" />
<ClCompile Include="..\src\WinControls\SplitterContainer\SplitterContainer.cpp" />
<ClCompile Include="..\src\sqlite\sqlite3.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">
</PrecompiledHeader>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|Win32'">TurnOffAllWarnings</WarningLevel>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">TurnOffAllWarnings</WarningLevel>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Unicode Release|x64'">
</PrecompiledHeader>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">TurnOffAllWarnings</WarningLevel>
<WarningLevel Condition="'$(Configuration)|$(Platform)'=='Unicode Release|x64'">TurnOffAllWarnings</WarningLevel>
</ClCompile>
<ClCompile Include="..\src\WinControls\StaticDialog\StaticDialog.cpp" />
<ClCompile Include="..\src\WinControls\StatusBar\StatusBar.cpp" />
<ClCompile Include="..\src\WinControls\TabBar\TabBar.cpp" />
@ -539,7 +533,6 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<ClInclude Include="..\src\MISC\Common\LongRunningOperation.h" />
<ClInclude Include="..\src\MISC\Common\mutex.h" />
<ClInclude Include="..\src\MISC\Common\mutex.hxx" />
<ClInclude Include="..\src\ScitillaComponent\resource.h" />
<ClInclude Include="..\src\WinControls\AboutDlg\AboutDlg.h" />
<ClInclude Include="..\src\WinControls\AnsiCharPanel\ansiCharPanel.h" />
<ClInclude Include="..\src\ScitillaComponent\AutoCompletion.h" />
@ -630,7 +623,6 @@ copy ..\src\contextMenu.xml ..\bin\contextMenu.xml
<ClInclude Include="..\src\ScitillaComponent\SmartHighlighter.h" />
<ClInclude Include="..\src\WinControls\SplitterContainer\Splitter.h" />
<ClInclude Include="..\src\WinControls\SplitterContainer\SplitterContainer.h" />
<ClInclude Include="..\src\sqlite\sqlite3.h" />
<ClInclude Include="..\src\WinControls\StaticDialog\StaticDialog.h" />
<ClInclude Include="..\src\WinControls\StatusBar\StatusBar.h" />
<ClInclude Include="..\src\WinControls\TabBar\TabBar.h" />

View File

@ -1,8 +1,8 @@
What is Notepad++ ?
===================
[<img src="https://notepad-plus-plus.org/assets/images/communityDiscussionOrange.png">](https://notepad-plus-plus.org/community/) &nbsp;&nbsp;&nbsp;&nbsp;[![Join the chat at https://gitter.im/notepad-plus-plus/notepad-plus-plus](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/notepad-plus-plus/notepad-plus-plus?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Join the disscussions at https://notepad-plus-plus.org/community/](https://notepad-plus-plus.org/assets/images/NppCommunityBadge.svg)](https://notepad-plus-plus.org/community/)
&nbsp;&nbsp;&nbsp;&nbsp;[![Join the chat at https://gitter.im/notepad-plus-plus/notepad-plus-plus](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/notepad-plus-plus/notepad-plus-plus?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Notepad++ is a free (free as in both "free speech" and "free beer") source code
editor and Notepad replacement that supports several programming languages and