mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	- Now able to use single quote as quotes in Substitute. Reverted r510, r511.
- [WebParser] Updated PCRE library 6.4 to 8.10.
This commit is contained in:
		@@ -153,6 +153,13 @@ void CMeasure::ReadConfig(CConfigParser& parser, const WCHAR* section)
 | 
			
		||||
 | 
			
		||||
	std::wstring subs;
 | 
			
		||||
	subs = parser.ReadString(section, L"Substitute", L"");
 | 
			
		||||
	if (!subs.empty() &&
 | 
			
		||||
		(subs[0] != L'\"' || subs[subs.length() - 1] != L'\'') &&
 | 
			
		||||
		(subs[0] != L'\'' || subs[subs.length() - 1] != L'\"'))
 | 
			
		||||
	{
 | 
			
		||||
		// Add quotes since they are removed by the GetProfileString
 | 
			
		||||
		subs = L"\"" + subs + L"\"";
 | 
			
		||||
	}
 | 
			
		||||
	if (!ParseSubstitute(subs))
 | 
			
		||||
	{
 | 
			
		||||
		DebugLog(L"Incorrect substitute string: %s", subs.c_str());
 | 
			
		||||
@@ -217,9 +224,6 @@ bool CMeasure::ParseSubstitute(std::wstring buffer)
 | 
			
		||||
{
 | 
			
		||||
	if (buffer.empty()) return true;	
 | 
			
		||||
 | 
			
		||||
	// Add quotes since they are removed by the GetProfileString
 | 
			
		||||
	buffer = L"\"" + buffer + L"\"";
 | 
			
		||||
 | 
			
		||||
	std::wstring word1;
 | 
			
		||||
	std::wstring word2;
 | 
			
		||||
	std::wstring sep;
 | 
			
		||||
@@ -263,13 +267,15 @@ std::wstring CMeasure::ExtractWord(std::wstring& buffer)
 | 
			
		||||
	std::wstring::size_type notwhite = buffer.find_first_not_of(L" \t\n");
 | 
			
		||||
	buffer.erase(0, notwhite);
 | 
			
		||||
 | 
			
		||||
	if (buffer[0] == L'\"')
 | 
			
		||||
	if (buffer[0] == L'\"' || buffer[0] == L'\'')
 | 
			
		||||
	{
 | 
			
		||||
		WCHAR quote = buffer[0];
 | 
			
		||||
 | 
			
		||||
		end = 1;	// Skip the '"'
 | 
			
		||||
		// Quotes around the word
 | 
			
		||||
		while (buffer[end] != L'\"' && end < buffer.size()) ++end;
 | 
			
		||||
		while (buffer[end] != quote && end < buffer.size()) ++end;
 | 
			
		||||
 | 
			
		||||
		if (buffer[end] == L'\"')
 | 
			
		||||
		if (buffer[end] == quote)
 | 
			
		||||
		{
 | 
			
		||||
			ret = buffer.substr(1, end - 1);
 | 
			
		||||
			buffer.erase(0, end + 1);
 | 
			
		||||
@@ -299,8 +305,6 @@ std::wstring CMeasure::ExtractWord(std::wstring& buffer)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	while ((pos = ret.find(L"#QUOT#", pos)) != std::wstring::npos) ret.replace(pos, 6, L"\"");
 | 
			
		||||
 | 
			
		||||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -29,7 +29,7 @@
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <Wininet.h>
 | 
			
		||||
#include <shlwapi.h>
 | 
			
		||||
#include "pcre-6.4/pcre.h"
 | 
			
		||||
#include "pcre-8.10/pcre.h"
 | 
			
		||||
#include "..\..\Library\Export.h"	// Rainmeter's exported functions
 | 
			
		||||
 | 
			
		||||
/* The exported functions */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user