diff options
| -rw-r--r-- | cocoa/ScintillaCocoa.h | 1 | ||||
| -rw-r--r-- | gtk/ScintillaGTK.cxx | 1 | ||||
| -rw-r--r-- | gtk/ScintillaGTKAccessible.cxx | 1 | ||||
| -rw-r--r-- | qt/ScintillaEdit/ScintillaDocument.cpp | 1 | ||||
| -rw-r--r-- | qt/ScintillaEditBase/ScintillaQt.h | 1 | ||||
| -rw-r--r-- | scripts/HeaderOrder.txt | 1 | ||||
| -rw-r--r-- | src/ContractionState.cxx | 13 | ||||
| -rw-r--r-- | src/ContractionState.h | 2 | ||||
| -rw-r--r-- | src/EditModel.cxx | 2 | ||||
| -rw-r--r-- | src/EditView.cxx | 1 | ||||
| -rw-r--r-- | src/Editor.cxx | 1 | ||||
| -rw-r--r-- | src/MarginView.cxx | 1 | ||||
| -rw-r--r-- | src/PositionCache.cxx | 1 | ||||
| -rw-r--r-- | src/ScintillaBase.cxx | 1 | ||||
| -rw-r--r-- | src/SparseVector.h | 105 | ||||
| -rw-r--r-- | src/UniqueString.h | 34 | ||||
| -rw-r--r-- | test/unit/testContractionState.cxx | 11 | ||||
| -rw-r--r-- | test/unit/testSparseVector.cxx | 75 | ||||
| -rw-r--r-- | win32/ScintillaWin.cxx | 1 | ||||
| -rw-r--r-- | win32/deps.mak | 118 | ||||
| -rw-r--r-- | win32/scintilla.mak | 11 | 
21 files changed, 235 insertions, 148 deletions
diff --git a/cocoa/ScintillaCocoa.h b/cocoa/ScintillaCocoa.h index 4b0b2eb1d..7b9231012 100644 --- a/cocoa/ScintillaCocoa.h +++ b/cocoa/ScintillaCocoa.h @@ -33,6 +33,7 @@  #endif  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index b28483f00..0737b71f1 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -46,6 +46,7 @@  #include "LexerModule.h"  #endif  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/gtk/ScintillaGTKAccessible.cxx b/gtk/ScintillaGTKAccessible.cxx index aede7dd4e..fdcc20dbd 100644 --- a/gtk/ScintillaGTKAccessible.cxx +++ b/gtk/ScintillaGTKAccessible.cxx @@ -95,6 +95,7 @@  #include "LexerModule.h"  #endif  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/qt/ScintillaEdit/ScintillaDocument.cpp b/qt/ScintillaEdit/ScintillaDocument.cpp index 5a6ef200c..076292c95 100644 --- a/qt/ScintillaEdit/ScintillaDocument.cpp +++ b/qt/ScintillaEdit/ScintillaDocument.cpp @@ -15,6 +15,7 @@  #include "Scintilla.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/qt/ScintillaEditBase/ScintillaQt.h b/qt/ScintillaEditBase/ScintillaQt.h index fbf61bc10..2aceb1e00 100644 --- a/qt/ScintillaEditBase/ScintillaQt.h +++ b/qt/ScintillaEditBase/ScintillaQt.h @@ -30,6 +30,7 @@  #include "Platform.h"  #include "ILexer.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/scripts/HeaderOrder.txt b/scripts/HeaderOrder.txt index 13373ae33..768fce341 100644 --- a/scripts/HeaderOrder.txt +++ b/scripts/HeaderOrder.txt @@ -105,6 +105,7 @@  #include "Catalogue.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/ContractionState.cxx b/src/ContractionState.cxx index 6fca2ec4e..c56c5647b 100644 --- a/src/ContractionState.cxx +++ b/src/ContractionState.cxx @@ -17,6 +17,7 @@  #include "Platform.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" @@ -39,7 +40,7 @@ void ContractionState::EnsureData() {  		visible.reset(new RunStyles());  		expanded.reset(new RunStyles());  		heights.reset(new RunStyles()); -		foldDisplayTexts.reset(new SparseVector<const char *>()); +		foldDisplayTexts.reset(new SparseVector<UniqueString>());  		displayLines.reset(new Partitioning(4));  		InsertLines(0, linesInDocument);  	} @@ -111,7 +112,7 @@ void ContractionState::InsertLine(Sci::Line lineDoc) {  		heights->InsertSpace(lineDoc, 1);  		heights->SetValueAt(lineDoc, 1);  		foldDisplayTexts->InsertSpace(lineDoc, 1); -		foldDisplayTexts->SetValueAt(lineDoc, NULL); +		foldDisplayTexts->SetValueAt(lineDoc, nullptr);  		Sci::Line lineDisplay = DisplayFromDoc(lineDoc);  		displayLines->InsertPartition(lineDoc, lineDisplay);  		displayLines->InsertText(lineDoc, 1); @@ -191,14 +192,14 @@ bool ContractionState::HiddenLines() const {  const char *ContractionState::GetFoldDisplayText(Sci::Line lineDoc) const {  	Check(); -	return foldDisplayTexts->ValueAt(lineDoc); +	return foldDisplayTexts->ValueAt(lineDoc).get();  }  bool ContractionState::SetFoldDisplayText(Sci::Line lineDoc, const char *text) {  	EnsureData(); -	const char *foldText = foldDisplayTexts->ValueAt(lineDoc); -	if (!foldText || 0 != strcmp(text, foldText)) { -		foldDisplayTexts->SetValueAt(lineDoc, text); +	const char *foldText = foldDisplayTexts->ValueAt(lineDoc).get(); +	if (!foldText || !text || 0 != strcmp(text, foldText)) { +		foldDisplayTexts->SetValueAt(lineDoc, UniqueStringCopy(text));  		Check();  		return true;  	} else { diff --git a/src/ContractionState.h b/src/ContractionState.h index 1e4c3f58f..1070fb59f 100644 --- a/src/ContractionState.h +++ b/src/ContractionState.h @@ -22,7 +22,7 @@ class ContractionState {  	std::unique_ptr<RunStyles> visible;  	std::unique_ptr<RunStyles> expanded;  	std::unique_ptr<RunStyles> heights; -	std::unique_ptr<SparseVector<const char *>> foldDisplayTexts; +	std::unique_ptr<SparseVector<UniqueString>> foldDisplayTexts;  	std::unique_ptr<Partitioning> displayLines;  	Sci::Line linesInDocument; diff --git a/src/EditModel.cxx b/src/EditModel.cxx index 292ce954c..faf21623e 100644 --- a/src/EditModel.cxx +++ b/src/EditModel.cxx @@ -8,6 +8,7 @@  #include <cstddef>  #include <cstdlib>  #include <cassert> +#include <cstring>  #include <cmath>  #include <stdexcept> @@ -24,6 +25,7 @@  #include "StringCopy.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/EditView.cxx b/src/EditView.cxx index 808daa6fa..089862515 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -28,6 +28,7 @@  #include "StringCopy.h"  #include "CharacterSet.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/Editor.cxx b/src/Editor.cxx index 63ec27786..2ad440db3 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -27,6 +27,7 @@  #include "StringCopy.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/MarginView.cxx b/src/MarginView.cxx index e371a4891..7ecc85c7b 100644 --- a/src/MarginView.cxx +++ b/src/MarginView.cxx @@ -27,6 +27,7 @@  #include "StringCopy.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index 2099046b8..591cf2254 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -22,6 +22,7 @@  #include "Scintilla.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 0fbf555d1..3979354eb 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -34,6 +34,7 @@  #endif  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/src/SparseVector.h b/src/SparseVector.h index ce38d0da1..230871ccc 100644 --- a/src/SparseVector.h +++ b/src/SparseVector.h @@ -19,45 +19,18 @@ class SparseVector {  private:  	std::unique_ptr<Partitioning> starts;  	std::unique_ptr<SplitVector<T>> values; +	T empty;  	// Deleted so SparseVector objects can not be copied.  	SparseVector(const SparseVector &) = delete;  	void operator=(const SparseVector &) = delete;  	void ClearValue(int partition) {  		values->SetValueAt(partition, T());  	} -	void CommonSetValueAt(int position, T value) { -		// Do the work of setting the value to allow for specialization of SetValueAt. -		assert(position < Length()); -		const int partition = starts->PartitionFromPosition(position); -		const int startPartition = starts->PositionFromPartition(partition); -		if (value == T()) { -			// Setting the empty value is equivalent to deleting the position -			if (position == 0) { -				ClearValue(partition); -			} else if (position == startPartition) { -				// Currently an element at this position, so remove -				ClearValue(partition); -				starts->RemovePartition(partition); -				values->Delete(partition); -			} -			// Else element remains empty -		} else { -			if (position == startPartition) { -				// Already a value at this position, so replace -				ClearValue(partition); -				values->SetValueAt(partition, value); -			} else { -				// Insert a new element -				starts->InsertPartition(partition + 1, position); -				values->InsertValue(partition + 1, 1, value); -			} -		} -	}  public: -	SparseVector() { +	SparseVector() : empty() {  		starts.reset(new Partitioning(8));  		values.reset(new SplitVector<T>()); -		values->InsertValue(0, 2, T()); +		values->InsertEmpty(0, 2);  	}  	~SparseVector() {  		starts.reset(); @@ -76,39 +49,60 @@ public:  	int PositionOfElement(int element) const {  		return starts->PositionFromPartition(element);  	} -	T ValueAt(int position) const { +	const T& ValueAt(int position) const {  		assert(position < Length());  		const int partition = starts->PartitionFromPosition(position);  		const int startPartition = starts->PositionFromPartition(partition);  		if (startPartition == position) {  			return values->ValueAt(partition);  		} else { -			return T(); +			return empty;  		}  	} -	void SetValueAt(int position, T value) { -		CommonSetValueAt(position, value); +	template <typename ParamType> +	void SetValueAt(int position, ParamType &&value) { +		assert(position < Length()); +		const int partition = starts->PartitionFromPosition(position); +		const int startPartition = starts->PositionFromPartition(partition); +		if (value == T()) { +			// Setting the empty value is equivalent to deleting the position +			if (position == 0) { +				ClearValue(partition); +			} else if (position == startPartition) { +				// Currently an element at this position, so remove +				ClearValue(partition); +				starts->RemovePartition(partition); +				values->Delete(partition); +			} +			// Else element remains empty +		} else { +			if (position == startPartition) { +				// Already a value at this position, so replace +				ClearValue(partition); +				values->SetValueAt(partition, std::move(value)); +			} else { +				// Insert a new element +				starts->InsertPartition(partition + 1, position); +				values->Insert(partition + 1, std::move(value)); +			} +		}  	}  	void InsertSpace(int position, int insertLength) {  		assert(position <= Length());	// Only operation that works at end.  		const int partition = starts->PartitionFromPosition(position);  		const int startPartition = starts->PositionFromPartition(partition);  		if (startPartition == position) { -			T valueCurrent = values->ValueAt(partition); +			const bool positionOccupied = values->ValueAt(partition) != T();  			// Inserting at start of run so make previous longer  			if (partition == 0) { -				// Inserting at start of document so ensure 0 -				if (valueCurrent != T()) { -					// Since valueCurrent is needed again, should not ClearValue -					values->SetValueAt(0, T()); +				// Inserting at start of document so ensure start empty +				if (positionOccupied) {  					starts->InsertPartition(1, 0); -					values->InsertValue(1, 1, valueCurrent); -					starts->InsertText(0, insertLength); -				} else { -					starts->InsertText(partition, insertLength); +					values->InsertEmpty(0, 1);  				} +				starts->InsertText(partition, insertLength);  			} else { -				if (valueCurrent != T()) { +				if (positionOccupied) {  					starts->InsertText(partition - 1, insertLength);  				} else {  					// Insert at end of run so do not extend style @@ -157,29 +151,6 @@ public:  	}  }; -// The specialization for const char * makes copies and deletes them as needed. - -template<> -inline void SparseVector<const char *>::ClearValue(int partition) { -	const char *value = values->ValueAt(partition); -	delete []value; -	value = nullptr; -	values->SetValueAt(partition, value); -} - -template<> -inline void SparseVector<const char *>::SetValueAt(int position, const char *value) { -	// Make a copy of the string -	if (value) { -		const size_t len = strlen(value); -		char *valueCopy = new char[len + 1](); -		std::copy(value, value + len, valueCopy); -		CommonSetValueAt(position, valueCopy); -	} else { -		CommonSetValueAt(position, nullptr); -	} -} -  #ifdef SCI_NAMESPACE  }  #endif diff --git a/src/UniqueString.h b/src/UniqueString.h new file mode 100644 index 000000000..07da0f171 --- /dev/null +++ b/src/UniqueString.h @@ -0,0 +1,34 @@ +// Scintilla source code edit control +/** @file UniqueString.h + ** Define UniqueString, a unique_ptr based string type for storage in containers + ** and an allocator for UniqueString. + **/ +// Copyright 2017 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#ifndef UNIQUESTRING_H +#define UNIQUESTRING_H + +#ifdef SCI_NAMESPACE +namespace Scintilla { +#endif + +using UniqueString = std::unique_ptr<const char[]>; + +/// Equivalent to strdup but produces a std::unique_ptr<const char[]> allocation to go +/// into collections. +inline UniqueString UniqueStringCopy(const char *text) { +	if (!text) { +		return UniqueString(); +	} +	const size_t len = strlen(text); +	char *sNew = new char[len + 1]; +	std::copy(text, text + len + 1, sNew); +	return UniqueString(sNew); +} + +#ifdef SCI_NAMESPACE +} +#endif + +#endif diff --git a/test/unit/testContractionState.cxx b/test/unit/testContractionState.cxx index 8b401dcb6..4f7a522a4 100644 --- a/test/unit/testContractionState.cxx +++ b/test/unit/testContractionState.cxx @@ -10,6 +10,7 @@  #include "Platform.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" @@ -141,4 +142,14 @@ TEST_CASE("ContractionState") {  		REQUIRE(1 == cs.GetHeight(2));  	} +	SECTION("SetFoldDisplayText") { +		cs.InsertLines(0, 4); +		cs.SetFoldDisplayText(1, "abc"); +		REQUIRE(strcmp(cs.GetFoldDisplayText(1), "abc") == 0); +		cs.SetFoldDisplayText(1, "def"); +		REQUIRE(strcmp(cs.GetFoldDisplayText(1), "def") == 0); +		cs.SetFoldDisplayText(1, nullptr); +		REQUIRE(static_cast<const char *>(nullptr) == cs.GetFoldDisplayText(1)); +	} +  } diff --git a/test/unit/testSparseVector.cxx b/test/unit/testSparseVector.cxx index 16498397a..c4c3a6ab1 100644 --- a/test/unit/testSparseVector.cxx +++ b/test/unit/testSparseVector.cxx @@ -11,6 +11,7 @@  #include "Platform.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "SparseVector.h" @@ -21,11 +22,11 @@  // Helper to produce a string representation of a SparseVector<const char *>  // to simplify checks. -static std::string Representation(const SparseVector<const char *> &st) { +static std::string Representation(const SparseVector<UniqueString> &st) {  	std::string ret;  	for (int i = 0;i < st.Length();i++) { -		const char *value = st.ValueAt(i); -		if (value) +		const char *value = st.ValueAt(i).get(); +		if (value && *value)  			ret += value;  		else  			ret += "-"; @@ -35,7 +36,7 @@ static std::string Representation(const SparseVector<const char *> &st) {  TEST_CASE("SparseVector") { -	SparseVector<const char *> st; +	SparseVector<UniqueString> st;  	SECTION("IsEmptyInitially") {  		REQUIRE(1 == st.Elements()); @@ -46,24 +47,26 @@ TEST_CASE("SparseVector") {  	SECTION("InsertSpace") {  		st.InsertSpace(0, 5);  		REQUIRE(1 == st.Elements()); -		REQUIRE(static_cast<const char *>(nullptr) == st.ValueAt(0)); -		REQUIRE(static_cast<const char *>(nullptr) == st.ValueAt(1)); -		REQUIRE(static_cast<const char *>(nullptr) == st.ValueAt(4)); +		REQUIRE(static_cast<const char *>(nullptr) == st.ValueAt(0).get()); +		REQUIRE(static_cast<const char *>(nullptr) == st.ValueAt(1).get()); +		REQUIRE(static_cast<const char *>(nullptr) == st.ValueAt(4).get());  		st.Check();  	}  	SECTION("InsertValue") {  		st.InsertSpace(0, 5); -		st.SetValueAt(3, "3"); +		st.SetValueAt(3, UniqueStringCopy("3"));  		REQUIRE(2 == st.Elements());  		REQUIRE("---3-" == Representation(st));  		st.Check();  	} -	SECTION("InsertAndDeleteValue") { +	SECTION("InsertAndChangeAndDeleteValue") {  		st.InsertSpace(0, 5);  		REQUIRE(5 == st.Length()); -		st.SetValueAt(3, "3"); +		st.SetValueAt(3, UniqueStringCopy("3")); +		REQUIRE(2 == st.Elements()); +		st.SetValueAt(3, UniqueStringCopy("4"));  		REQUIRE(2 == st.Elements());  		st.DeletePosition(3);  		REQUIRE(1 == st.Elements()); @@ -75,13 +78,13 @@ TEST_CASE("SparseVector") {  	SECTION("InsertAndDeleteAtStart") {  		REQUIRE(1 == st.Elements());  		st.InsertSpace(0, 5); -		st.SetValueAt(0, "3"); +		st.SetValueAt(0, UniqueStringCopy("3"));  		REQUIRE(1 == st.Elements());  		REQUIRE("3----" == Representation(st));  		st.DeletePosition(0);  		REQUIRE(1 == st.Elements());  		REQUIRE("----" == Representation(st)); -		st.SetValueAt(0, "4"); +		st.SetValueAt(0, UniqueStringCopy("4"));  		REQUIRE(1 == st.Elements());  		REQUIRE("4---" == Representation(st));  		st.DeletePosition(0); @@ -93,7 +96,7 @@ TEST_CASE("SparseVector") {  	SECTION("InsertStringAtStartThenInsertSpaceAtStart") {  		REQUIRE(1 == st.Elements());  		st.InsertSpace(0, 5); -		st.SetValueAt(0, "3"); +		st.SetValueAt(0, UniqueStringCopy("3"));  		REQUIRE(1 == st.Elements());  		REQUIRE("3----" == Representation(st));  		st.InsertSpace(0, 1); @@ -102,10 +105,42 @@ TEST_CASE("SparseVector") {  		st.Check();  	} +	SECTION("InsertSpaceAfterStart") { +		REQUIRE(1 == st.Elements()); +		st.InsertSpace(0, 5); +		st.SetValueAt(1, UniqueStringCopy("1")); +		REQUIRE(2 == st.Elements()); +		REQUIRE("-1---" == Representation(st)); +		st.InsertSpace(1, 1); +		REQUIRE(2 == st.Elements()); +		REQUIRE("--1---" == Representation(st)); +		st.Check(); +	} + +	SECTION("InsertStringAt1ThenInsertLettersAt1") { +		REQUIRE(1 == st.Elements()); +		st.InsertSpace(0, 5); +		st.SetValueAt(1, UniqueStringCopy("9")); +		REQUIRE(2 == st.Elements()); +		REQUIRE("-9---" == Representation(st)); +		st.InsertSpace(0, 1); +		REQUIRE(2 == st.Elements()); +		REQUIRE("--9---" == Representation(st)); +		// Initial st has allocation of 9 values so this should cause reallocation +		const std::string letters("ABCDEFGHIJKLMNOP");	// 16 letters +		for (const char letter : letters) { +			const char sLetter[] = { letter, 0 }; +			st.InsertSpace(0, 1); +			st.SetValueAt(1, UniqueStringCopy(sLetter)); +		} +		REQUIRE("-PONMLKJIHGFEDCBA-9---" == Representation(st)); +		st.Check(); +	} +  	SECTION("InsertAndDeleteAtEnd") {  		REQUIRE(1 == st.Elements());  		st.InsertSpace(0, 5); -		st.SetValueAt(4, "5"); +		st.SetValueAt(4, UniqueStringCopy("5"));  		REQUIRE(2 == st.Elements());  		REQUIRE("----5" == Representation(st));  		st.DeletePosition(4); @@ -117,7 +152,7 @@ TEST_CASE("SparseVector") {  	SECTION("SetNULL") {  		REQUIRE(1 == st.Elements());  		st.InsertSpace(0, 5); -		st.SetValueAt(4, "5"); +		st.SetValueAt(4, UniqueStringCopy("5"));  		REQUIRE(2 == st.Elements());  		REQUIRE("----5" == Representation(st));  		st.SetValueAt(4, nullptr); @@ -129,10 +164,10 @@ TEST_CASE("SparseVector") {  	SECTION("DeleteAll") {  		REQUIRE(1 == st.Elements());  		st.InsertSpace(0, 10); -		st.SetValueAt(9, "9"); -		st.SetValueAt(7, "7"); -		st.SetValueAt(4, "4"); -		st.SetValueAt(3, "3"); +		st.SetValueAt(9, UniqueStringCopy("9")); +		st.SetValueAt(7, UniqueStringCopy("7")); +		st.SetValueAt(4, UniqueStringCopy("4")); +		st.SetValueAt(3, UniqueStringCopy("3"));  		REQUIRE(5 == st.Elements());  		REQUIRE("---34--7-9" == Representation(st));  		st.Check(); @@ -178,7 +213,7 @@ TEST_CASE("SparseTextString") {  	SECTION("InsertAndDeleteValue") {  		st.InsertSpace(0, 5);  		REQUIRE(5 == st.Length()); -		st.SetValueAt(3, "3"); +		st.SetValueAt(3, std::string("3"));  		REQUIRE(2 == st.Elements());  		REQUIRE("" == st.ValueAt(0));  		REQUIRE("" == st.ValueAt(2)); diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index e296844b7..81f288c72 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -55,6 +55,7 @@  #include "LexerModule.h"  #endif  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" diff --git a/win32/deps.mak b/win32/deps.mak index 2faf1a1af..330eaec73 100644 --- a/win32/deps.mak +++ b/win32/deps.mak @@ -4,15 +4,16 @@ PlatWin.o: PlatWin.cxx ../include/Platform.h ../lexlib/StringCopy.h \   ../src/XPM.h ../src/UniConversion.h ../src/FontQuality.h  ScintillaWin.o: ScintillaWin.cxx ../include/Platform.h \   ../include/ILexer.h ../include/Sci_Position.h ../include/Scintilla.h \ - ../lexlib/StringCopy.h ../src/Position.h ../src/SplitVector.h \ - ../src/Partitioning.h ../src/RunStyles.h ../src/ContractionState.h \ - ../src/CellBuffer.h ../src/CallTip.h ../src/KeyMap.h ../src/Indicator.h \ - ../src/XPM.h ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ - ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \ - ../src/Document.h ../src/CaseConvert.h ../src/UniConversion.h \ - ../src/Selection.h ../src/PositionCache.h ../src/EditModel.h \ - ../src/MarginView.h ../src/EditView.h ../src/Editor.h \ - ../src/AutoComplete.h ../src/ScintillaBase.h PlatWin.h HanjaDic.h + ../lexlib/StringCopy.h ../src/Position.h ../src/UniqueString.h \ + ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h \ + ../src/ContractionState.h ../src/CellBuffer.h ../src/CallTip.h \ + ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h \ + ../src/Style.h ../src/ViewStyle.h ../src/CharClassify.h \ + ../src/Decoration.h ../src/CaseFolder.h ../src/Document.h \ + ../src/CaseConvert.h ../src/UniConversion.h ../src/Selection.h \ + ../src/PositionCache.h ../src/EditModel.h ../src/MarginView.h \ + ../src/EditView.h ../src/Editor.h ../src/AutoComplete.h \ + ../src/ScintillaBase.h PlatWin.h HanjaDic.h  AutoComplete.o: ../src/AutoComplete.cxx ../include/Platform.h \   ../include/Scintilla.h ../include/Sci_Position.h \   ../lexlib/CharacterSet.h ../src/Position.h ../src/AutoComplete.h @@ -32,8 +33,9 @@ CellBuffer.o: ../src/CellBuffer.cxx ../include/Platform.h \   ../src/UniConversion.h  CharClassify.o: ../src/CharClassify.cxx ../src/CharClassify.h  ContractionState.o: ../src/ContractionState.cxx ../include/Platform.h \ - ../src/Position.h ../src/SplitVector.h ../src/Partitioning.h \ - ../src/RunStyles.h ../src/SparseVector.h ../src/ContractionState.h + ../src/Position.h ../src/UniqueString.h ../src/SplitVector.h \ + ../src/Partitioning.h ../src/RunStyles.h ../src/SparseVector.h \ + ../src/ContractionState.h  Decoration.o: ../src/Decoration.cxx ../include/Platform.h \   ../include/Scintilla.h ../include/Sci_Position.h ../src/Position.h \   ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h \ @@ -47,33 +49,33 @@ Document.o: ../src/Document.cxx ../include/Platform.h ../include/ILexer.h \   ../src/RESearch.h ../src/UniConversion.h ../src/UnicodeFromUTF8.h  EditModel.o: ../src/EditModel.cxx ../include/Platform.h \   ../include/ILexer.h ../include/Sci_Position.h ../include/Scintilla.h \ - ../lexlib/StringCopy.h ../src/Position.h ../src/SplitVector.h \ - ../src/Partitioning.h ../src/RunStyles.h ../src/ContractionState.h \ - ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h \ - ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ - ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \ - ../src/Document.h ../src/UniConversion.h ../src/Selection.h \ - ../src/PositionCache.h ../src/EditModel.h + ../lexlib/StringCopy.h ../src/Position.h ../src/UniqueString.h \ + ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h \ + ../src/ContractionState.h ../src/CellBuffer.h ../src/KeyMap.h \ + ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h ../src/Style.h \ + ../src/ViewStyle.h ../src/CharClassify.h ../src/Decoration.h \ + ../src/CaseFolder.h ../src/Document.h ../src/UniConversion.h \ + ../src/Selection.h ../src/PositionCache.h ../src/EditModel.h  Editor.o: ../src/Editor.cxx ../include/Platform.h ../include/ILexer.h \   ../include/Sci_Position.h ../include/Scintilla.h ../lexlib/StringCopy.h \ - ../src/Position.h ../src/SplitVector.h ../src/Partitioning.h \ - ../src/RunStyles.h ../src/ContractionState.h ../src/CellBuffer.h \ - ../src/PerLine.h ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h \ - ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ - ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \ - ../src/Document.h ../src/UniConversion.h ../src/Selection.h \ - ../src/PositionCache.h ../src/EditModel.h ../src/MarginView.h \ - ../src/EditView.h ../src/Editor.h -EditView.o: ../src/EditView.cxx ../include/Platform.h ../include/ILexer.h \ - ../include/Sci_Position.h ../include/Scintilla.h ../lexlib/StringCopy.h \ - ../lexlib/CharacterSet.h ../src/Position.h ../src/SplitVector.h \ + ../src/Position.h ../src/UniqueString.h ../src/SplitVector.h \   ../src/Partitioning.h ../src/RunStyles.h ../src/ContractionState.h \   ../src/CellBuffer.h ../src/PerLine.h ../src/KeyMap.h ../src/Indicator.h \   ../src/XPM.h ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \   ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \   ../src/Document.h ../src/UniConversion.h ../src/Selection.h \   ../src/PositionCache.h ../src/EditModel.h ../src/MarginView.h \ - ../src/EditView.h + ../src/EditView.h ../src/Editor.h +EditView.o: ../src/EditView.cxx ../include/Platform.h ../include/ILexer.h \ + ../include/Sci_Position.h ../include/Scintilla.h ../lexlib/StringCopy.h \ + ../lexlib/CharacterSet.h ../src/Position.h ../src/UniqueString.h \ + ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h \ + ../src/ContractionState.h ../src/CellBuffer.h ../src/PerLine.h \ + ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h \ + ../src/Style.h ../src/ViewStyle.h ../src/CharClassify.h \ + ../src/Decoration.h ../src/CaseFolder.h ../src/Document.h \ + ../src/UniConversion.h ../src/Selection.h ../src/PositionCache.h \ + ../src/EditModel.h ../src/MarginView.h ../src/EditView.h  ExternalLexer.o: ../src/ExternalLexer.cxx ../include/Platform.h \   ../include/ILexer.h ../include/Sci_Position.h ../include/Scintilla.h \   ../include/SciLexer.h ../lexlib/LexerModule.h ../src/Catalogue.h \ @@ -88,26 +90,27 @@ LineMarker.o: ../src/LineMarker.cxx ../include/Platform.h \   ../src/XPM.h ../src/LineMarker.h  MarginView.o: ../src/MarginView.cxx ../include/Platform.h \   ../include/ILexer.h ../include/Sci_Position.h ../include/Scintilla.h \ - ../lexlib/StringCopy.h ../src/Position.h ../src/SplitVector.h \ - ../src/Partitioning.h ../src/RunStyles.h ../src/ContractionState.h \ - ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h \ - ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ - ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \ - ../src/Document.h ../src/UniConversion.h ../src/Selection.h \ - ../src/PositionCache.h ../src/EditModel.h ../src/MarginView.h \ - ../src/EditView.h + ../lexlib/StringCopy.h ../src/Position.h ../src/UniqueString.h \ + ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h \ + ../src/ContractionState.h ../src/CellBuffer.h ../src/KeyMap.h \ + ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h ../src/Style.h \ + ../src/ViewStyle.h ../src/CharClassify.h ../src/Decoration.h \ + ../src/CaseFolder.h ../src/Document.h ../src/UniConversion.h \ + ../src/Selection.h ../src/PositionCache.h ../src/EditModel.h \ + ../src/MarginView.h ../src/EditView.h  PerLine.o: ../src/PerLine.cxx ../include/Platform.h \   ../include/Scintilla.h ../include/Sci_Position.h ../src/Position.h \   ../src/SplitVector.h ../src/Partitioning.h ../src/CellBuffer.h \   ../src/PerLine.h  PositionCache.o: ../src/PositionCache.cxx ../include/Platform.h \   ../include/ILexer.h ../include/Sci_Position.h ../include/Scintilla.h \ - ../src/Position.h ../src/SplitVector.h ../src/Partitioning.h \ - ../src/RunStyles.h ../src/ContractionState.h ../src/CellBuffer.h \ - ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h \ - ../src/Style.h ../src/ViewStyle.h ../src/CharClassify.h \ - ../src/Decoration.h ../src/CaseFolder.h ../src/Document.h \ - ../src/UniConversion.h ../src/Selection.h ../src/PositionCache.h + ../src/Position.h ../src/UniqueString.h ../src/SplitVector.h \ + ../src/Partitioning.h ../src/RunStyles.h ../src/ContractionState.h \ + ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h \ + ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ + ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \ + ../src/Document.h ../src/UniConversion.h ../src/Selection.h \ + ../src/PositionCache.h  RESearch.o: ../src/RESearch.cxx ../src/Position.h ../src/CharClassify.h \   ../src/RESearch.h  RunStyles.o: ../src/RunStyles.cxx ../include/Platform.h \ @@ -115,13 +118,14 @@ RunStyles.o: ../src/RunStyles.cxx ../include/Platform.h \   ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h  ScintillaBase.o: ../src/ScintillaBase.cxx ../include/Platform.h \   ../include/ILexer.h ../include/Sci_Position.h ../include/Scintilla.h \ - ../lexlib/PropSetSimple.h ../src/Position.h ../src/SplitVector.h \ - ../src/Partitioning.h ../src/RunStyles.h ../src/ContractionState.h \ - ../src/CellBuffer.h ../src/CallTip.h ../src/KeyMap.h ../src/Indicator.h \ - ../src/XPM.h ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ - ../src/CharClassify.h ../src/Decoration.h ../src/CaseFolder.h \ - ../src/Document.h ../src/Selection.h ../src/PositionCache.h \ - ../src/EditModel.h ../src/MarginView.h ../src/EditView.h ../src/Editor.h \ + ../lexlib/PropSetSimple.h ../src/Position.h ../src/UniqueString.h \ + ../src/SplitVector.h ../src/Partitioning.h ../src/RunStyles.h \ + ../src/ContractionState.h ../src/CellBuffer.h ../src/CallTip.h \ + ../src/KeyMap.h ../src/Indicator.h ../src/XPM.h ../src/LineMarker.h \ + ../src/Style.h ../src/ViewStyle.h ../src/CharClassify.h \ + ../src/Decoration.h ../src/CaseFolder.h ../src/Document.h \ + ../src/Selection.h ../src/PositionCache.h ../src/EditModel.h \ + ../src/MarginView.h ../src/EditView.h ../src/Editor.h \   ../src/AutoComplete.h ../src/ScintillaBase.h  Selection.o: ../src/Selection.cxx ../include/Platform.h \   ../include/Scintilla.h ../include/Sci_Position.h ../src/Position.h \ @@ -382,6 +386,11 @@ LexHTML.o: ../lexers/LexHTML.cxx ../include/ILexer.h \   ../lexlib/StringCopy.h ../lexlib/WordList.h ../lexlib/LexAccessor.h \   ../lexlib/Accessor.h ../lexlib/StyleContext.h ../lexlib/CharacterSet.h \   ../lexlib/LexerModule.h +LexIndent.o: ../lexers/LexIndent.cxx ../include/ILexer.h \ + ../include/Sci_Position.h ../include/Scintilla.h ../include/SciLexer.h \ + ../lexlib/WordList.h ../lexlib/LexAccessor.h ../lexlib/Accessor.h \ + ../lexlib/StyleContext.h ../lexlib/CharacterSet.h \ + ../lexlib/LexerModule.h  LexInno.o: ../lexers/LexInno.cxx ../include/ILexer.h \   ../include/Sci_Position.h ../include/Scintilla.h ../include/SciLexer.h \   ../lexlib/WordList.h ../lexlib/LexAccessor.h ../lexlib/Accessor.h \ @@ -552,9 +561,10 @@ LexPS.o: ../lexers/LexPS.cxx ../include/ILexer.h \   ../lexlib/LexerModule.h  LexPython.o: ../lexers/LexPython.cxx ../include/ILexer.h \   ../include/Sci_Position.h ../include/Scintilla.h ../include/SciLexer.h \ - ../lexlib/WordList.h ../lexlib/LexAccessor.h ../lexlib/Accessor.h \ - ../lexlib/StyleContext.h ../lexlib/CharacterSet.h \ - ../lexlib/LexerModule.h ../lexlib/OptionSet.h ../lexlib/SubStyles.h + ../lexlib/StringCopy.h ../lexlib/WordList.h ../lexlib/LexAccessor.h \ + ../lexlib/Accessor.h ../lexlib/StyleContext.h ../lexlib/CharacterSet.h \ + ../lexlib/CharacterCategory.h ../lexlib/LexerModule.h \ + ../lexlib/OptionSet.h ../lexlib/SubStyles.h  LexR.o: ../lexers/LexR.cxx ../include/ILexer.h ../include/Sci_Position.h \   ../include/Scintilla.h ../include/SciLexer.h ../lexlib/WordList.h \   ../lexlib/LexAccessor.h ../lexlib/Accessor.h ../lexlib/StyleContext.h \ diff --git a/win32/scintilla.mak b/win32/scintilla.mak index 227578f81..339d9e533 100644 --- a/win32/scintilla.mak +++ b/win32/scintilla.mak @@ -347,6 +347,7 @@ $(DIR_O)\ContractionState.obj: \  	../src/ContractionState.cxx \  	../include/Platform.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -391,6 +392,7 @@ $(DIR_O)\EditModel.obj: \  	../include/Scintilla.h \  	../lexlib/StringCopy.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -418,6 +420,7 @@ $(DIR_O)\Editor.obj: \  	../include/Scintilla.h \  	../lexlib/StringCopy.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -450,6 +453,7 @@ $(DIR_O)\EditView.obj: \  	../lexlib/StringCopy.h \  	../lexlib/CharacterSet.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -779,6 +783,7 @@ $(DIR_O)\MarginView.obj: \  	../include/Scintilla.h \  	../lexlib/StringCopy.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -824,6 +829,7 @@ $(DIR_O)\PositionCache.obj: \  	../include/Sci_Position.h \  	../include/Scintilla.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -867,6 +873,7 @@ $(DIR_O)\ScintillaBase.obj: \  	../include/Scintilla.h \  	../lexlib/PropSetSimple.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -899,6 +906,7 @@ $(DIR_O)\ScintillaBaseL.obj: \  	../include/Scintilla.h \  	../lexlib/PropSetSimple.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -931,6 +939,7 @@ $(DIR_O)\ScintillaWin.obj: \  	../include/Scintilla.h \  	../lexlib/StringCopy.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -967,6 +976,7 @@ $(DIR_O)\ScintillaWinL.obj: \  	../include/Scintilla.h \  	../lexlib/StringCopy.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \ @@ -1003,6 +1013,7 @@ $(DIR_O)\ScintillaWinS.obj: \  	../include/Scintilla.h \  	../lexlib/StringCopy.h \  	../src/Position.h \ +	../src/UniqueString.h \  	../src/SplitVector.h \  	../src/Partitioning.h \  	../src/RunStyles.h \  | 
