diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/PerLine.cxx | 8 | ||||
| -rw-r--r-- | src/PerLine.h | 2 | 
2 files changed, 6 insertions, 4 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) { diff --git a/src/PerLine.h b/src/PerLine.h index b43c52bb8..50ce1e551 100644 --- a/src/PerLine.h +++ b/src/PerLine.h @@ -37,7 +37,7 @@ public:  	bool Contains(int handle) const;  	bool InsertHandle(int handle, int markerNum);  	void RemoveHandle(int handle); -	bool RemoveNumber(int markerNum); +	bool RemoveNumber(int markerNum, bool all);  	void CombineWith(MarkerHandleSet *other);  }; | 
