diff options
| author | nyamatongwe <unknown> | 2012-06-18 10:29:27 +1000 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2012-06-18 10:29:27 +1000 | 
| commit | 7d99273987eb95b0abd36e989daf48f82b517f1f (patch) | |
| tree | 8a2faacb0bc43a279f681aa6b01c87be9afdacce /src/PerLine.cxx | |
| parent | f0d56e473978dcfa017b6597ef4e2e09e5a477e6 (diff) | |
| download | scintilla-mirror-7d99273987eb95b0abd36e989daf48f82b517f1f.tar.gz | |
Remove marker only once for SCI_MARKERDELETE. Bug #3535806.
Diffstat (limited to 'src/PerLine.cxx')
| -rw-r--r-- | src/PerLine.cxx | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/src/PerLine.cxx b/src/PerLine.cxx index 0bdb60254..a2225dbb6 100644 --- a/src/PerLine.cxx +++ b/src/PerLine.cxx @@ -99,7 +99,7 @@ void MarkerHandleSet::RemoveHandle(int handle) {  	}  } -bool MarkerHandleSet::RemoveNumber(int markerNum) { +bool MarkerHandleSet::RemoveNumber(int markerNum, bool all) {  	bool performedDeletion = false;  	MarkerHandleNumber **pmhn = &root;  	while (*pmhn) { @@ -108,6 +108,8 @@ bool MarkerHandleSet::RemoveNumber(int markerNum) {  			*pmhn = mhn->next;  			delete mhn;  			performedDeletion = true; +			if (!all) +				break;   		} else {  			pmhn = &((*pmhn)->next);  		} @@ -223,10 +225,10 @@ bool LineMarkers::DeleteMark(int line, int markerNum, bool all) {  			delete markers[line];  			markers[line] = NULL;  		} else { -			bool performedDeletion = markers[line]->RemoveNumber(markerNum); +			bool performedDeletion = markers[line]->RemoveNumber(markerNum, all);  			someChanges = someChanges || performedDeletion;  			while (all && performedDeletion) { -				performedDeletion = markers[line]->RemoveNumber(markerNum); +				performedDeletion = markers[line]->RemoveNumber(markerNum, all);  				someChanges = someChanges || performedDeletion;  			}  			if (markers[line]->Length() == 0) { | 
