diff options
| -rw-r--r-- | include/Platform.h | 1 | ||||
| -rw-r--r-- | include/WindowAccessor.h | 6 | ||||
| -rw-r--r-- | src/CallTip.h | 5 | ||||
| -rw-r--r-- | src/CellBuffer.cxx | 4 | ||||
| -rw-r--r-- | src/CellBuffer.h | 2 | ||||
| -rw-r--r-- | src/Document.cxx | 4 | ||||
| -rw-r--r-- | src/Document.h | 2 | ||||
| -rw-r--r-- | src/DocumentAccessor.cxx | 2 | ||||
| -rw-r--r-- | src/DocumentAccessor.h | 6 | ||||
| -rw-r--r-- | src/Editor.cxx | 12 | ||||
| -rw-r--r-- | src/Editor.h | 3 | ||||
| -rw-r--r-- | src/KeyMap.cxx | 100 | ||||
| -rw-r--r-- | src/LexPerl.cxx | 10 | ||||
| -rw-r--r-- | src/LineMarker.cxx | 20 | ||||
| -rw-r--r-- | src/PropSet.cxx | 2 | ||||
| -rw-r--r-- | src/ScintillaBase.cxx | 2 | ||||
| -rw-r--r-- | src/ScintillaBase.h | 3 | ||||
| -rw-r--r-- | src/Style.cxx | 12 | ||||
| -rw-r--r-- | src/Style.h | 1 | ||||
| -rw-r--r-- | src/WindowAccessor.cxx | 2 | 
20 files changed, 97 insertions, 102 deletions
| diff --git a/include/Platform.h b/include/Platform.h index 1ac931ce2..b60469488 100644 --- a/include/Platform.h +++ b/include/Platform.h @@ -308,6 +308,7 @@ protected:  	WindowID id;  public:  	Window() : id(0) {} +	Window(const Window &source) : id(source.id) {}  	virtual ~Window();  	Window &operator=(WindowID id_) {  		id = id_; diff --git a/include/WindowAccessor.h b/include/WindowAccessor.h index 9b09d9d08..567c47894 100644 --- a/include/WindowAccessor.h +++ b/include/WindowAccessor.h @@ -3,6 +3,9 @@  // The License.txt file describes the conditions under which this software may be distributed.  class WindowAccessor : public Accessor { +	// Private so WindowAccessor objects can not be copied +	WindowAccessor(const WindowAccessor &source) : Accessor(), props(source.props) {} +	WindowAccessor &operator=(const WindowAccessor &) { return *this; }  protected:  	WindowID id;  	PropSet &props; @@ -18,7 +21,8 @@ protected:  	void Fill(int position);  public:  	WindowAccessor(WindowID id_, PropSet &props_) :  -		id(id_), props(props_), lenDoc(-1), validLen(0), chFlags(0) { +		Accessor(), id(id_), props(props_),  +		lenDoc(-1), validLen(0), chFlags(0) {  	}  	~WindowAccessor();  	char StyleAt(int position); diff --git a/src/CallTip.h b/src/CallTip.h index cd5b093c8..cb5bc2903 100644 --- a/src/CallTip.h +++ b/src/CallTip.h @@ -6,13 +6,14 @@  #ifndef CALLTIP_H  #define CALLTIP_H -const char callClassName[] = "CallTip"; -  class CallTip {  	int startHighlight;  	int endHighlight;  	char *val;  	Font font; +	// Private so CallTip objects can not be copied +	CallTip(const CallTip &) {} +	CallTip &operator=(const CallTip &) { return *this; }  public:  	Window wCallTip;  	Window wDraw; diff --git a/src/CellBuffer.cxx b/src/CellBuffer.cxx index 4d032f94f..c89c1c8dd 100644 --- a/src/CellBuffer.cxx +++ b/src/CellBuffer.cxx @@ -678,7 +678,7 @@ void CellBuffer::InsertCharStyle(int position, char ch, char style) {  bool CellBuffer::SetStyleAt(int position, char style, char mask) {  	char curVal = ByteAt(position*2 + 1);  	if ((curVal & mask) != style) { -		SetByteAt(position*2 + 1, (curVal & ~mask) | style); +		SetByteAt(position*2 + 1, static_cast<char>((curVal & ~mask) | style));  		return true;  	} else {  		return false; @@ -691,7 +691,7 @@ bool CellBuffer::SetStyleFor(int position, int lengthStyle, char style, char mas  	while (lengthStyle--) {  		char curVal = ByteAt(bytePos);  		if ((curVal & mask) != style) { -			SetByteAt(bytePos, (curVal & ~mask) | style); +			SetByteAt(bytePos, static_cast<char>((curVal & ~mask) | style));  			changed = true;  		}  		bytePos += 2; diff --git a/src/CellBuffer.h b/src/CellBuffer.h index 1d7f57b05..2fcaca3a5 100644 --- a/src/CellBuffer.h +++ b/src/CellBuffer.h @@ -172,7 +172,7 @@ public:  	// Setting styles for positions outside the range of the buffer is safe and has no effect.  	// True is returned if the style of a character changed. -	bool SetStyleAt(int position, char style, char mask=(char)0xff); +	bool SetStyleAt(int position, char style, char mask='\377');  	bool SetStyleFor(int position, int length, char style, char mask);  	const char *DeleteChars(int position, int deleteLength); diff --git a/src/Document.cxx b/src/Document.cxx index 650c0ced2..44e55671f 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -634,11 +634,9 @@ long Document::FindText(int minPos, int maxPos, const char *s, bool caseSensitiv  	// Compute actual search ranges needed  	int lengthFind = strlen(s); - 	int endSearch = 0; + 	int endSearch = endPos;   	if (startPos <= endPos) {   		endSearch = endPos - lengthFind + 1; - 	} else { - 		endSearch = endPos;   	}  	//Platform::DebugPrintf("Find %d %d %s %d\n", startPos, endPos, ft->lpstrText, lengthFind);  	char firstChar = s[0]; diff --git a/src/Document.h b/src/Document.h index ae25d69f4..2e00efee5 100644 --- a/src/Document.h +++ b/src/Document.h @@ -74,7 +74,7 @@ private:  	CellBuffer cb;  	bool wordchars[256];  	int stylingPos; -	int stylingMask; +	char stylingMask;  	int endStyled;  	int enteredCount;  	int enteredReadOnlyCount; diff --git a/src/DocumentAccessor.cxx b/src/DocumentAccessor.cxx index e6eb1d935..d28840c16 100644 --- a/src/DocumentAccessor.cxx +++ b/src/DocumentAccessor.cxx @@ -101,7 +101,7 @@ void DocumentAccessor::ColourTo(unsigned int pos, int chAttr) {  			Flush();  		if (validLen + (pos - startSeg + 1) >= bufferSize) {  			// Too big for buffer so send directly -			pdoc->SetStyleFor(pos - startSeg + 1, chAttr); +			pdoc->SetStyleFor(pos - startSeg + 1, static_cast<char>(chAttr));  		} else {  			if (chAttr != chWhile)  				chFlags = 0; diff --git a/src/DocumentAccessor.h b/src/DocumentAccessor.h index 942579559..ab11544e2 100644 --- a/src/DocumentAccessor.h +++ b/src/DocumentAccessor.h @@ -5,6 +5,9 @@  class Document;  class DocumentAccessor : public Accessor { +	// Private so DocumentAccessor objects can not be copied +	DocumentAccessor(const DocumentAccessor &source) : Accessor(), props(source.props) {} +	DocumentAccessor &operator=(const DocumentAccessor &) { return *this; }  protected:  	Document *pdoc;  	PropSet &props; @@ -20,7 +23,8 @@ protected:  	void Fill(int position);  public:  	DocumentAccessor(Document *pdoc_, PropSet &props_) :  -		pdoc(pdoc_), props(props_), lenDoc(-1), validLen(0), chFlags(0) { +		Accessor(), pdoc(pdoc_), props(props_),  +		lenDoc(-1), validLen(0), chFlags(0) {  	}  	~DocumentAccessor();  	char StyleAt(int position); diff --git a/src/Editor.cxx b/src/Editor.cxx index 111142d90..9b958b7d4 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -189,7 +189,7 @@ bool IsControlCharacter(char ch) {  	return ch >= 0 && ch < ' ';  } -const char *ControlCharacterString(char ch) { +const char *ControlCharacterString(unsigned char ch) {  	const char *reps[] = {  	    "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",  	    "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", @@ -488,7 +488,7 @@ void Editor::ScrollTo(int line) {  	}  } -void Editor::ScrollText(int linesToMove) { +void Editor::ScrollText(int /* linesToMove */) {  	//Platform::DebugPrintf("Editor::ScrollText %d\n", linesToMove);  	Redraw();  } @@ -1019,13 +1019,11 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) {  	}  	//Platform::DebugPrintf("start display %d, offset = %d\n", pdoc->Length(), xOffset); -	Surface *surface = 0;  	if (rcArea.right > vs.fixedColumnWidth) { +		Surface *surface = surfaceWindow;  		if (bufferedDraw) {  			surface = &pixmapLine; -		} else { -			surface = surfaceWindow;  		}  		surface->SetUnicodeMode(SC_CP_UTF8 == pdoc->dbcsCodePage); @@ -2651,7 +2649,7 @@ int Editor::BraceMatch(int position, int /*maxReStyle*/) {  	position = position + direction;  	while ((position >= 0) && (position < pdoc->Length())) {  		char chAtPos = pdoc->CharAt(position); -		char styAtPos = pdoc->StyleAt(position) & pdoc->stylingBitsMask; +		char styAtPos = static_cast<char>(pdoc->StyleAt(position) & pdoc->stylingBitsMask);  		if ((position > pdoc->GetEndStyled()) || (styAtPos == styBrace)) {  			if (chAtPos == chBrace)  				depth++; @@ -2761,7 +2759,7 @@ void Editor::EnsureLineVisible(int line) {  }  static bool ValidMargin(WPARAM wParam) { -	return (wParam >= 0 && wParam < ViewStyle::margins); +	return wParam < ViewStyle::margins;  } diff --git a/src/Editor.h b/src/Editor.h index 0c04b41cd..1dccf35c7 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -38,6 +38,9 @@ public:  };  class Editor : public DocWatcher { +	// Private so Editor objects can not be copied +	Editor(const Editor &) : DocWatcher() {} +	Editor &operator=(const Editor &) { return *this; }  protected:	// ScintillaBase subclass needs access to much of Editor  	// On GTK+, Scintilla is a container widget holding two scroll bars and a drawing area diff --git a/src/KeyMap.cxx b/src/KeyMap.cxx index 9ab9694df..a9a4adf33 100644 --- a/src/KeyMap.cxx +++ b/src/KeyMap.cxx @@ -61,56 +61,56 @@ UINT KeyMap::Find(int key, int modifiers) {  }  KeyToCommand KeyMap::MapDefault[] = { -    VK_DOWN,		SCI_NORM,	SCI_LINEDOWN, -    VK_DOWN,		SCI_SHIFT,	SCI_LINEDOWNEXTEND, -    VK_UP,			SCI_NORM,	SCI_LINEUP, -    VK_UP,			SCI_SHIFT,	SCI_LINEUPEXTEND, -    VK_LEFT,		SCI_NORM,	SCI_CHARLEFT, -    VK_LEFT,		SCI_SHIFT,	SCI_CHARLEFTEXTEND, -    VK_LEFT,		SCI_CTRL,	SCI_WORDLEFT, -    VK_LEFT,		SCI_CSHIFT,	SCI_WORDLEFTEXTEND, -    VK_RIGHT,		SCI_NORM,	SCI_CHARRIGHT, -    VK_RIGHT,		SCI_SHIFT,	SCI_CHARRIGHTEXTEND, -    VK_RIGHT,		SCI_CTRL,	SCI_WORDRIGHT, -    VK_RIGHT,		SCI_CSHIFT,	SCI_WORDRIGHTEXTEND, -    VK_HOME, 		SCI_NORM, 	SCI_VCHOME, -    VK_HOME, 		SCI_SHIFT, 	SCI_VCHOMEEXTEND, -    VK_HOME, 		SCI_CTRL, 	SCI_DOCUMENTSTART, -    VK_HOME, 		SCI_CSHIFT, 	SCI_DOCUMENTSTARTEXTEND, -    VK_END,	 	SCI_NORM, 	SCI_LINEEND, -    VK_END,	 	SCI_SHIFT, 	SCI_LINEENDEXTEND, -    VK_END, 		SCI_CTRL, 	SCI_DOCUMENTEND, -    VK_END, 		SCI_CSHIFT, 	SCI_DOCUMENTENDEXTEND, -    VK_PRIOR,		SCI_NORM, 	SCI_PAGEUP, -    VK_PRIOR,		SCI_SHIFT, 	SCI_PAGEUPEXTEND, -    VK_NEXT, 		SCI_NORM, 	SCI_PAGEDOWN, -    VK_NEXT, 		SCI_SHIFT, 	SCI_PAGEDOWNEXTEND, -    VK_DELETE, 	SCI_NORM,	WM_CLEAR, -    VK_DELETE, 	SCI_SHIFT,	WM_CUT, -    VK_DELETE, 	SCI_CTRL,	SCI_DELWORDRIGHT, -    VK_INSERT, 		SCI_NORM,	SCI_EDITTOGGLEOVERTYPE, -    VK_INSERT, 		SCI_SHIFT,	WM_PASTE, -    VK_INSERT, 		SCI_CTRL,	WM_COPY, -    VK_ESCAPE,  	SCI_NORM,	SCI_CANCEL, -    VK_BACK,		SCI_NORM, 	SCI_DELETEBACK, -    VK_BACK,		SCI_CTRL, 	SCI_DELWORDLEFT, -    'Z', 			SCI_CTRL,	WM_UNDO, -    'Y', 			SCI_CTRL,	SCI_REDO, -    'X', 			SCI_CTRL,	WM_CUT, -    'C', 			SCI_CTRL,	WM_COPY, -    'V', 			SCI_CTRL,	WM_PASTE, -    'A', 			SCI_CTRL,	SCI_SELECTALL, -    VK_TAB,		SCI_NORM,	SCI_TAB, -    VK_TAB,		SCI_SHIFT,	SCI_BACKTAB, -    VK_RETURN, 	SCI_NORM,	SCI_NEWLINE, -    VK_ADD, 		SCI_CTRL,	SCI_ZOOMIN, -    VK_SUBTRACT,	SCI_CTRL,	SCI_ZOOMOUT, +    {VK_DOWN,		SCI_NORM,	SCI_LINEDOWN}, +    {VK_DOWN,		SCI_SHIFT,	SCI_LINEDOWNEXTEND}, +    {VK_UP,			SCI_NORM,	SCI_LINEUP}, +    {VK_UP,			SCI_SHIFT,	SCI_LINEUPEXTEND}, +    {VK_LEFT,		SCI_NORM,	SCI_CHARLEFT}, +    {VK_LEFT,		SCI_SHIFT,	SCI_CHARLEFTEXTEND}, +    {VK_LEFT,		SCI_CTRL,	SCI_WORDLEFT}, +    {VK_LEFT,		SCI_CSHIFT,	SCI_WORDLEFTEXTEND}, +    {VK_RIGHT,		SCI_NORM,	SCI_CHARRIGHT}, +    {VK_RIGHT,		SCI_SHIFT,	SCI_CHARRIGHTEXTEND}, +    {VK_RIGHT,		SCI_CTRL,	SCI_WORDRIGHT}, +    {VK_RIGHT,		SCI_CSHIFT,	SCI_WORDRIGHTEXTEND}, +    {VK_HOME, 		SCI_NORM, 	SCI_VCHOME}, +    {VK_HOME, 		SCI_SHIFT, 	SCI_VCHOMEEXTEND}, +    {VK_HOME, 		SCI_CTRL, 	SCI_DOCUMENTSTART}, +    {VK_HOME, 		SCI_CSHIFT, 	SCI_DOCUMENTSTARTEXTEND}, +    {VK_END,	 	SCI_NORM, 	SCI_LINEEND}, +    {VK_END,	 	SCI_SHIFT, 	SCI_LINEENDEXTEND}, +    {VK_END, 		SCI_CTRL, 	SCI_DOCUMENTEND}, +    {VK_END, 		SCI_CSHIFT, 	SCI_DOCUMENTENDEXTEND}, +    {VK_PRIOR,		SCI_NORM, 	SCI_PAGEUP}, +    {VK_PRIOR,		SCI_SHIFT, 	SCI_PAGEUPEXTEND}, +    {VK_NEXT, 		SCI_NORM, 	SCI_PAGEDOWN}, +    {VK_NEXT, 		SCI_SHIFT, 	SCI_PAGEDOWNEXTEND}, +    {VK_DELETE, 	SCI_NORM,	WM_CLEAR}, +    {VK_DELETE, 	SCI_SHIFT,	WM_CUT}, +    {VK_DELETE, 	SCI_CTRL,	SCI_DELWORDRIGHT}, +    {VK_INSERT, 		SCI_NORM,	SCI_EDITTOGGLEOVERTYPE}, +    {VK_INSERT, 		SCI_SHIFT,	WM_PASTE}, +    {VK_INSERT, 		SCI_CTRL,	WM_COPY}, +    {VK_ESCAPE,  	SCI_NORM,	SCI_CANCEL}, +    {VK_BACK,		SCI_NORM, 	SCI_DELETEBACK}, +    {VK_BACK,		SCI_CTRL, 	SCI_DELWORDLEFT}, +    {'Z', 			SCI_CTRL,	WM_UNDO}, +    {'Y', 			SCI_CTRL,	SCI_REDO}, +    {'X', 			SCI_CTRL,	WM_CUT}, +    {'C', 			SCI_CTRL,	WM_COPY}, +    {'V', 			SCI_CTRL,	WM_PASTE}, +    {'A', 			SCI_CTRL,	SCI_SELECTALL}, +    {VK_TAB,		SCI_NORM,	SCI_TAB}, +    {VK_TAB,		SCI_SHIFT,	SCI_BACKTAB}, +    {VK_RETURN, 	SCI_NORM,	SCI_NEWLINE}, +    {VK_ADD, 		SCI_CTRL,	SCI_ZOOMIN}, +    {VK_SUBTRACT,	SCI_CTRL,	SCI_ZOOMOUT},      //'L', 			SCI_CTRL,		SCI_FORMFEED, -    'L', 			SCI_CTRL,	SCI_LINECUT, -    'L', 			SCI_CSHIFT,	SCI_LINEDELETE, -    'T', 			SCI_CTRL,	SCI_LINETRANSPOSE, -    'U', 			SCI_CTRL,	SCI_LOWERCASE, -    'U', 			SCI_CSHIFT,	SCI_UPPERCASE, -    0,0,0, +    {'L', 			SCI_CTRL,	SCI_LINECUT}, +    {'L', 			SCI_CSHIFT,	SCI_LINEDELETE}, +    {'T', 			SCI_CTRL,	SCI_LINETRANSPOSE}, +    {'U', 			SCI_CTRL,	SCI_LOWERCASE}, +    {'U', 			SCI_CSHIFT,	SCI_UPPERCASE}, +    {0,0,0},  }; diff --git a/src/LexPerl.cxx b/src/LexPerl.cxx index 155a0c1a2..c57934866 100644 --- a/src/LexPerl.cxx +++ b/src/LexPerl.cxx @@ -67,16 +67,6 @@ static bool isMatch(Accessor &styler, int lengthDoc, int pos, const char *val) {  	return true;  } -static bool isOKQuote(char ch) { -	if (isalnum(ch)) -		return false; -	if (isspace(ch)) -		return false; -	if (iscntrl(ch)) -		return false; -	return true; -} -  static char opposite(char ch) {  	if (ch == '(')  		return ')'; diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx index 9afccb822..f54978c3f 100644 --- a/src/LineMarker.cxx +++ b/src/LineMarker.cxx @@ -51,20 +51,6 @@ void LineMarker::Draw(Surface *surface, PRectangle &rc) {  	} else if (markType == SC_MARK_PLUS) {  		int armSize = dimOn2-2; -		Point xpts[] = { -    		Point(centreX - armSize, centreY), -    		Point(centreX, centreY), -    		Point(centreX, centreY - armSize), -    		Point(centreX, centreY - armSize), -    		Point(centreX, centreY), -    		Point(centreX + armSize, centreY), -    		Point(centreX + armSize, centreY), -    		Point(centreX, centreY), -    		Point(centreX, centreY + armSize), -    		Point(centreX, centreY + armSize), -    		Point(centreX, centreY), -    		Point(centreX - armSize, centreY), -		};  		Point pts[] = {      		Point(centreX - armSize, centreY - 1),      		Point(centreX - 1, centreY - 1), @@ -90,12 +76,6 @@ void LineMarker::Draw(Surface *surface, PRectangle &rc) {      		Point(centreX + armSize, centreY +1),      		Point(centreX - armSize, centreY + 1),  		}; -		Point xpts[] = { -    		Point(centreX - armSize, centreY), -    		Point(centreX + armSize, centreY), -    		Point(centreX + armSize, centreY), -    		Point(centreX - armSize, centreY), -		};  		surface->Polygon(pts, sizeof(pts) / sizeof(pts[0]),                   		fore.allocated, back.allocated); diff --git a/src/PropSet.cxx b/src/PropSet.cxx index 101b7f563..6d90aed34 100644 --- a/src/PropSet.cxx +++ b/src/PropSet.cxx @@ -376,7 +376,7 @@ bool WordList::InList(const char *s) {  		for (int i = 0; words[i][0]; i++)  			len++;  		SortWordList(words, len); -		for (int k = 0; k < (sizeof(starts) / sizeof(starts[0])); k++) +		for (unsigned int k = 0; k < (sizeof(starts) / sizeof(starts[0])); k++)  			starts[k] = -1;  		for (int l = len - 1; l >= 0; l--) {  			unsigned char indexChar = words[l][0]; diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index ce8883bc3..6683c0146 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -387,7 +387,7 @@ LRESULT ScintillaBase::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam) {  		break;  	case SCI_SETKEYWORDS: -		if ((wParam >= 0) && (wParam < numWordLists)) { +		if (wParam < numWordLists) {  			keyWordLists[wParam]->Clear();  			keyWordLists[wParam]->Set(reinterpret_cast<const char *>(lParam));  		} diff --git a/src/ScintillaBase.h b/src/ScintillaBase.h index ec1b0665b..ec64ab5dd 100644 --- a/src/ScintillaBase.h +++ b/src/ScintillaBase.h @@ -7,6 +7,9 @@  #define SCINTILLABASE_H  class ScintillaBase : public Editor { +	// Private so ScintillaBase objects can not be copied +	ScintillaBase(const ScintillaBase &) : Editor() {} +	ScintillaBase &operator=(const ScintillaBase &) { return *this; }  protected:  	// Enumeration of commands and child windows  	enum { diff --git a/src/Style.cxx b/src/Style.cxx index 483023321..47ca196f3 100644 --- a/src/Style.cxx +++ b/src/Style.cxx @@ -16,6 +16,18 @@ Style::Style() {  		false, false, false);  } +Style::Style(const Style &source) { +	Clear(Colour(0,0,0), Colour(0xff,0xff,0xff), +	        0, 0, +		false, false, false); +	fore.desired = source.fore.desired; +	back.desired = source.back.desired; +	bold = source.bold; +	italic = source.italic; +	size = source.size; +	eolFilled = source.eolFilled; +} +  Style::~Style() {  	if (aliasOfDefaultFont)  		font.SetID(0); diff --git a/src/Style.h b/src/Style.h index a610ff8ba..95e006135 100644 --- a/src/Style.h +++ b/src/Style.h @@ -26,6 +26,7 @@ public:  	unsigned int spaceWidth;  	Style(); +	Style(const Style &source);  	~Style();  	Style &operator=(const Style &source);  	void Clear(Colour fore_, Colour back_, diff --git a/src/WindowAccessor.cxx b/src/WindowAccessor.cxx index e1e8ed876..059c877bd 100644 --- a/src/WindowAccessor.cxx +++ b/src/WindowAccessor.cxx @@ -105,7 +105,7 @@ void WindowAccessor::ColourTo(unsigned int pos, int chAttr) {  				chFlags = 0;  			chAttr |= chFlags;  			for (unsigned int i = startSeg; i <= pos; i++) { -				styleBuf[validLen++] = chAttr; +				styleBuf[validLen++] = static_cast<char>(chAttr);  			}  		}  	} | 
