diff options
| author | George Hazan <george.hazan@gmail.com> | 2015-02-21 14:21:56 +0000 | 
|---|---|---|
| committer | George Hazan <george.hazan@gmail.com> | 2015-02-21 14:21:56 +0000 | 
| commit | 4c9918cd61ada1d0e69402128b9030b5e5a7d3a1 (patch) | |
| tree | 327c9d9a80007e26f9bb5c84b74d22b70f6f1d5d | |
| parent | ef0096475288bd6a1a3463d8a437954862e85e66 (diff) | |
fix against speller
git-svn-id: http://svn.miranda-ng.org/main/trunk@12233 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
| -rw-r--r-- | plugins/TabSRMM/src/msgdlgutils.cpp | 17 | 
1 files changed, 12 insertions, 5 deletions
| diff --git a/plugins/TabSRMM/src/msgdlgutils.cpp b/plugins/TabSRMM/src/msgdlgutils.cpp index ae11b83a27..5c223cbf5c 100644 --- a/plugins/TabSRMM/src/msgdlgutils.cpp +++ b/plugins/TabSRMM/src/msgdlgutils.cpp @@ -843,6 +843,8 @@ char* TSAPI Message_GetFromStream(HWND hwndRtf, const TWindowData *dat, DWORD dw  // convert rich edit code to bbcode (if wanted). Otherwise, strip all RTF formatting
  // tags and return plain text
 +static TCHAR tszRtfBreaks[] = _T(" \\\n\r");
 +
  BOOL TSAPI DoRtfToTags(const TWindowData *dat, CMString &pszText)
  {
  	if (pszText.IsEmpty())
 @@ -860,7 +862,7 @@ BOOL TSAPI DoRtfToTags(const TWindowData *dat, CMString &pszText)  	if (idx == -1)
  		return FALSE;
 -	bool bInsideColor = false;
 +	bool bInsideColor = false, bInsideUl = false;
  	CMString res;
  	// iterate through all characters, if rtf control character found then take action
 @@ -920,10 +922,15 @@ BOOL TSAPI DoRtfToTags(const TWindowData *dat, CMString &pszText)  			}
  			else if (!_tcsncmp(p, _T("\\ul"), 3)) { // underlined
  				if (!lf.lfUnderline && dat->SendFormat) {
 -					if (p[3] == '0')
 +					if (p[3] == 0 || _tcschr(tszRtfBreaks, p[3])) {
  						res.Append(_T("[u]"));
 -					else if (p[3] == '1')
 -						res.Append(_T("[/u]"));
 +						bInsideUl = true;
 +					}
 +					else if (!_tcsnccmp(p + 3, _T("none"), 4)) {
 +						if (bInsideUl)
 +							res.Append(_T("[/u]"));
 +						bInsideUl = false;
 +					}
  				}
  			}
  			else if (!_tcsncmp(p, _T("\\tab"), 4)) { // tab
 @@ -955,7 +962,7 @@ BOOL TSAPI DoRtfToTags(const TWindowData *dat, CMString &pszText)  			}
  			p++; // skip initial slash
 -			p += _tcscspn(p, _T(" \\\n\r"));
 +			p += _tcscspn(p, tszRtfBreaks);
  			if (*p == ' ')
  				p++;
  			break;
 | 
