From ae1afa7d58e0ab42e8e93689c30f7d9084c926e4 Mon Sep 17 00:00:00 2001
From: George Hazan <george.hazan@gmail.com>
Date: Fri, 6 Sep 2013 18:37:48 +0000
Subject: more cleaning for MRA

git-svn-id: http://svn.miranda-ng.org/main/trunk@5978 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
---
 protocols/MRA/src/Sdk/InternetTime.h | 213 ++++++++++++++++-------------------
 1 file changed, 96 insertions(+), 117 deletions(-)

(limited to 'protocols/MRA/src/Sdk')

diff --git a/protocols/MRA/src/Sdk/InternetTime.h b/protocols/MRA/src/Sdk/InternetTime.h
index 683bae777f..0c7bde1f36 100644
--- a/protocols/MRA/src/Sdk/InternetTime.h
+++ b/protocols/MRA/src/Sdk/InternetTime.h
@@ -127,9 +127,9 @@ __inline void InternetTimeGetCurrentTime(INTERNET_TIME *pitTime)
 	GetSystemTime(&pitTime->stTime);
 }
 
-
+//	��������� ����� �� MAILTIME � ���������
 __inline CMStringA InternetTimeGetString(INTERNET_TIME *pitTime)
-{//	��������� ����� �� MAILTIME � ���������
+{
 	DWORD dwRet=NO_ERROR;
 
 	char lpszBuff[100];
@@ -164,135 +164,115 @@ __inline CMStringA InternetTimeGetString(INTERNET_TIME *pitTime)
 	return lpszBuff;
 }
 
-
-
-__inline DWORD InternetTimeGetTime(const CMStringA &lpszTime, INTERNET_TIME *pitTime)
-{//	��������� ����� �� ���������� � INTERNET_TIME
-	DWORD dwRet=NO_ERROR;
-
-	if (!lpszTime.IsEmpty() && pitTime)
-	{// = Thu, 21 May 1998 05:33:29 -0700 =
-		char sztmBuff[4096];
-		LPSTR lpszCurPos=sztmBuff,lpszTemp;
-		size_t i,dwCurSize=4096,dwTemp;
-
-		memset(pitTime, 0, sizeof(INTERNET_TIME));
-		WSP2SP(lpszTime, lpszTime.GetLength(), lpszCurPos, &dwCurSize);
-
-		if (dwCurSize>3)
-		{// ���� ������
-			if (lpszCurPos[3]==',')
-			{
-				for (i=0;i<8;i++)
-				{
-					if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpcszenmDayOfWeakEnum[i],3,lpszCurPos,3)==CSTR_EQUAL) 
-					{
-						pitTime->stTime.wDayOfWeek=(unsigned short)i;
-						break;
-					}
+//	��������� ����� �� ���������� � INTERNET_TIME
+__inline DWORD InternetTimeGetTime(const CMStringA &lpszTime, INTERNET_TIME &pitTime)
+{
+	if (lpszTime.IsEmpty())
+		return ERROR_INVALID_HANDLE;
+	
+	// = Thu, 21 May 1998 05:33:29 -0700 =
+	char sztmBuff[4096];
+	LPSTR lpszCurPos=sztmBuff,lpszTemp;
+	size_t i,dwCurSize=4096,dwTemp;
+
+	memset(&pitTime, 0, sizeof(INTERNET_TIME));
+	WSP2SP(lpszTime, lpszTime.GetLength(), lpszCurPos, &dwCurSize);
+
+	if (dwCurSize > 3) { // ���� ������
+		if (lpszCurPos[3] == ',') {
+			for (i=0; i < 8; i++) {
+				if ( !_memicmp(lpcszenmDayOfWeakEnum[i], lpszCurPos, 3)) {
+					pitTime.stTime.wDayOfWeek=(unsigned short)i;
+					break;
 				}
-
-				lpszCurPos+=4;
-				dwCurSize-=4;
 			}
 
-			if (dwCurSize>2)
-			{// ���� ������
-				SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
-				if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' ')))
-				{
-					dwTemp=(lpszTemp-lpszCurPos);
-					pitTime->stTime.wDay=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
+			lpszCurPos+=4;
+			dwCurSize-=4;
+		}
 
-					lpszCurPos=(lpszTemp+1);
-					dwCurSize-=(dwTemp+1);
+		if (dwCurSize>2) { // ���� ������
+			SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
+			if ((lpszTemp = (LPSTR)MemoryFindByte(0, lpszCurPos, dwCurSize,' '))) {
+				dwTemp=(lpszTemp-lpszCurPos);
+				pitTime.stTime.wDay=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
 
-					if (dwCurSize>3)
-					{// �����
-						SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
+				lpszCurPos=(lpszTemp+1);
+				dwCurSize-=(dwTemp+1);
 
-						for (i=1;i<14;i++)
-						{
-							if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpcszenmMonthEnum[i],3,lpszCurPos,3)==CSTR_EQUAL)
-							{
-								pitTime->stTime.wMonth=(unsigned short)i;
-								break;
-							}
+				if (dwCurSize > 3) { // �����
+					SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
+
+					for (i=1; i < 14; i++)
+						if ( !_memicmp(lpcszenmMonthEnum[i], lpszCurPos, 3)) {
+							pitTime.stTime.wMonth=(unsigned short)i;
+							break;
 						}
 
-						lpszCurPos+=3;
-						dwCurSize-=3;
-
-
-						if (dwCurSize>3)
-						{// ���
-							SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
-							if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' ')))
-							{
-								dwTemp=(lpszTemp-lpszCurPos);
-								pitTime->stTime.wYear=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
-
-								lpszCurPos=(lpszTemp+1);
-								dwCurSize-=(dwTemp+1);
-
-								if (dwCurSize>2)
-								{ // ����
-									SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
-									if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,':')))
-									{
-										dwTemp=(lpszTemp-lpszCurPos);
-										pitTime->stTime.wHour=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
-
-										lpszCurPos=(lpszTemp+1);
-										dwCurSize-=(dwTemp+1);
-
-										if (dwCurSize>2)
-										{// ������
-											SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
-											if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,':')))
-											{
-												dwTemp=(lpszTemp-lpszCurPos);
-												pitTime->stTime.wMinute=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
-
-												lpszCurPos=(lpszTemp+1);
-												dwCurSize-=(dwTemp+1);
-
-												if (dwCurSize>2)
-												{// �������, ��� ����
-													if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' ')))
-													{
-														dwTemp=(lpszTemp-lpszCurPos);
-														pitTime->stTime.wSecond=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
-
-														lpszCurPos=(lpszTemp+1);
-														dwCurSize-=(dwTemp+1);
-													}
-												}else{// ���� ���
-													if (dwCurSize)
-													{
-														pitTime->stTime.wSecond=(unsigned short)StrToUNum32(lpszCurPos,dwCurSize);
-														lpszCurPos+=dwCurSize;
-														dwCurSize=0;
-													}
-												}
-											}else{
-												if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' ')))
-												{
+					lpszCurPos += 3;
+					dwCurSize -= 3;
+
+					if (dwCurSize > 3) { // ���
+						SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
+						if ((lpszTemp = (LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' '))) {
+							dwTemp=(lpszTemp-lpszCurPos);
+							pitTime.stTime.wYear=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
+
+							lpszCurPos=(lpszTemp+1);
+							dwCurSize-=(dwTemp+1);
+
+							if (dwCurSize > 2) { // ����
+								SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
+								if ((lpszTemp = (LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,':'))) {
+									dwTemp=(lpszTemp-lpszCurPos);
+									pitTime.stTime.wHour=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
+
+									lpszCurPos=(lpszTemp+1);
+									dwCurSize-=(dwTemp+1);
+
+									if (dwCurSize > 2) { // ������
+										SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
+										if ((lpszTemp=(LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,':')))
+										{
+											dwTemp=(lpszTemp-lpszCurPos);
+											pitTime.stTime.wMinute=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
+
+											lpszCurPos = (lpszTemp+1);
+											dwCurSize -= (dwTemp+1);
+
+											if (dwCurSize > 2) { // �������, ��� ����
+												if ((lpszTemp = (LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' '))) {
 													dwTemp=(lpszTemp-lpszCurPos);
-													pitTime->stTime.wMinute=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
+													pitTime.stTime.wSecond=(unsigned short)StrToUNum32(lpszCurPos,dwTemp);
 
 													lpszCurPos=(lpszTemp+1);
 													dwCurSize-=(dwTemp+1);
 												}
 											}
+											else {// ���� ���
+												if (dwCurSize) {
+													pitTime.stTime.wSecond=(unsigned short)StrToUNum32(lpszCurPos,dwCurSize);
+													lpszCurPos+=dwCurSize;
+													dwCurSize=0;
+												}
+											}
+										}
+										else {
+											if ((lpszTemp = (LPSTR)MemoryFindByte(0,lpszCurPos,dwCurSize,' '))) {
+												dwTemp = (lpszTemp-lpszCurPos);
+												pitTime.stTime.wMinute = (unsigned short)StrToUNum32(lpszCurPos,dwTemp);
 
-											if (dwCurSize)
-											{// ������� ����
-												SkeepSPWSP(lpszCurPos,dwCurSize,&lpszCurPos,&dwCurSize);
-												pitTime->lTimeZone=(LONG)StrToNum(lpszCurPos,dwCurSize);
-												if (pitTime->lTimeZone>1300 || pitTime->lTimeZone<-1200) pitTime->lTimeZone=2400;
+												lpszCurPos = (lpszTemp+1);
+												dwCurSize -= (dwTemp+1);
 											}
 										}
+
+										if (dwCurSize) { // ������� ����
+											SkeepSPWSP(lpszCurPos, dwCurSize, &lpszCurPos, &dwCurSize);
+											pitTime.lTimeZone = (LONG)StrToNum(lpszCurPos, dwCurSize);
+											if (pitTime.lTimeZone > 1300 || pitTime.lTimeZone < -1200)
+												pitTime.lTimeZone = 2400;
+										}
 									}
 								}
 							}
@@ -301,10 +281,9 @@ __inline DWORD InternetTimeGetTime(const CMStringA &lpszTime, INTERNET_TIME *pit
 				}
 			}
 		}
-	}else{
-		dwRet=ERROR_INVALID_HANDLE;
 	}
-return(dwRet);
+
+	return NO_ERROR;
 }
 
 
-- 
cgit v1.2.3