[ros-diffs] [janderwald] 22699: * finished reading console options.c * thnx for everyone helping with this commit (you know who you are)

janderwald at svn.reactos.org janderwald at svn.reactos.org
Thu Jun 29 23:40:22 CEST 2006


Author: janderwald
Date: Fri Jun 30 01:40:22 2006
New Revision: 22699

URL: http://svn.reactos.org/svn/reactos?rev=22699&view=rev
Log:
* finished reading console options.c
* thnx for everyone helping with this commit (you know who you are)

Modified:
    trunk/reactos/dll/win32/console/console.c
    trunk/reactos/dll/win32/console/console.h
    trunk/reactos/dll/win32/console/options.c

Modified: trunk/reactos/dll/win32/console/console.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/console/console.c?rev=22699&r1=22698&r2=22699&view=diff
==============================================================================
--- trunk/reactos/dll/win32/console/console.c (original)
+++ trunk/reactos/dll/win32/console/console.c Fri Jun 30 01:40:22 2006
@@ -154,6 +154,13 @@
 	LPVOID    lpvReserved)
 {
   UNREFERENCED_PARAMETER(lpvReserved)
+
+  /* initialize global struct */
+  memset(&g_ConsoleInfo, 0x0, sizeof(ConsoleInfo));
+  g_ConsoleInfo.InsertMode = TRUE;
+  g_ConsoleInfo.HistoryBufferSize = 50;
+  g_ConsoleInfo.NumberOfHistoryBuffers = 5;
+
   switch(dwReason)
   {
     case DLL_PROCESS_ATTACH:

Modified: trunk/reactos/dll/win32/console/console.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/console/console.h?rev=22699&r1=22698&r2=22699&view=diff
==============================================================================
--- trunk/reactos/dll/win32/console/console.h (original)
+++ trunk/reactos/dll/win32/console/console.h Fri Jun 30 01:40:22 2006
@@ -20,6 +20,7 @@
 
 typedef struct TAGConsoleInfo
 {
+  LPSTR szProcessName;
   DWORD CursorSize;
   DWORD NumberOfHistoryBuffers;
   DWORD HistoryBufferSize;

Modified: trunk/reactos/dll/win32/console/options.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/console/options.c?rev=22699&r1=22698&r2=22699&view=diff
==============================================================================
--- trunk/reactos/dll/win32/console/options.c (original)
+++ trunk/reactos/dll/win32/console/options.c Fri Jun 30 01:40:22 2006
@@ -42,9 +42,9 @@
   DWORD dwNumSubKeys = 0;
   DWORD dwIndex;
   DWORD dwValueName;
-  DWORD dwBufferSize;
+  DWORD dwValue;
   TCHAR szValueName[MAX_PATH];
-  BYTE szBuffer[MAX_PATH];
+  DWORD Value;
 
   if ( RegOpenCurrentUser(KEY_READ, &hKey) != ERROR_SUCCESS )
 	 return FALSE;
@@ -60,49 +60,42 @@
 
   for (dwIndex = 0; dwIndex < dwNumSubKeys; dwIndex++)
   {
-	 dwBufferSize = MAX_PATH;
+	 dwValue = sizeof(Value);
 	 dwValueName = MAX_PATH;
 
-	 if ( RegEnumValue(hSubKey, dwIndex, szValueName, &dwValueName, NULL, NULL, szBuffer, &dwBufferSize) != ERROR_SUCCESS)
+	 if ( RegEnumValue(hSubKey, dwIndex, szValueName, &dwValueName, NULL, NULL, (BYTE*)&Value, &dwValue) != ERROR_SUCCESS)
 		break;
 
 	 if ( !_tcscmp(szValueName, _T("CursorSize")) )
 	 {
-		int val = _ttoi((TCHAR*)szBuffer);
-		if ( val == 0x32)
-			g_ConsoleInfo.CursorSize = val;
-		else if ( val == 0x64 )
-			g_ConsoleInfo.CursorSize = val;
+		if ( Value == 0x32)
+			g_ConsoleInfo.CursorSize = Value;
+		else if ( Value == 0x64 )
+			g_ConsoleInfo.CursorSize = Value;
 	}
 	else if ( !_tcscmp(szValueName, _T("NumberOfHistoryBuffers")) )
 	{
-			int val = _ttoi((TCHAR*)szBuffer);
-			g_ConsoleInfo.NumberOfHistoryBuffers = val;
+			g_ConsoleInfo.NumberOfHistoryBuffers = Value;
 	 }
 	 else if ( !_tcscmp(szValueName, _T("HistoryBufferSize")) )
 	 {
-		 	int val = _ttoi((TCHAR*)szBuffer);
-			g_ConsoleInfo.HistoryBufferSize = val;
+			g_ConsoleInfo.HistoryBufferSize = Value;
 	 }
 	 else if ( !_tcscmp(szValueName, _T("HistoryNoDup")) )
 	 {
-		int val = _ttoi((TCHAR*)szBuffer);
-		g_ConsoleInfo.HistoryNoDup = val;
+		g_ConsoleInfo.HistoryNoDup = Value;
 	 }
 	 else if ( !_tcscmp(szValueName, _T("FullScreen")) )
 	 {
-		int val = _ttoi((TCHAR*)szBuffer);
-		g_ConsoleInfo.FullScreen = val;
+		g_ConsoleInfo.FullScreen = Value;
 	 }
 	 else if ( !_tcscmp(szValueName, _T("QuickEdit")) )
 	 {
-		int val = _ttoi((TCHAR*)szBuffer);
-		g_ConsoleInfo.QuickEdit = val;
+		g_ConsoleInfo.QuickEdit = Value;
 	 }
 	 else if ( !_tcscmp(szValueName, _T("InsertMode")) )
 	 {
-		int val = _ttoi((TCHAR*)szBuffer);
-		g_ConsoleInfo.InsertMode = val;
+		g_ConsoleInfo.InsertMode = Value;
 	 }
   }
 
@@ -204,23 +197,50 @@
 BOOLEAN InitializeOptionsDialog(HWND hwndDlg)
 {
 	STARTUPINFO StartupInfo;
-
+	TCHAR szBuffer[MAX_PATH];
 	GetStartupInfo(&StartupInfo);
+	TCHAR * ptr;
+	DWORD length;
 
 	if ( StartupInfo.lpTitle )
 	{
-		if ( InitializeOptionsFromReg(StartupInfo.lpTitle) )
+		if ( !GetWindowsDirectory(szBuffer, MAX_PATH) )
+			return FALSE;
+
+		length = _tcslen(szBuffer);
+		if ( !_tcsncmp(szBuffer, StartupInfo.lpTitle, length) )
+		{
+			// Windows XP SP2 uses unexpanded environment vars to get path
+			// i.e. c:\windows\system32\cmd.exe
+			// becomes
+			// %SystemRoot%_system32_cmd.exe		
+
+			_tcscpy(szBuffer, _T("\%SystemRoot\%"));
+			_tcsncpy(&szBuffer[12], &StartupInfo.lpTitle[length], _tcslen(StartupInfo.lpTitle) - length + 1);
+			
+			ptr = &szBuffer[12];
+			while( (ptr = _tcsstr(ptr, _T("\\"))) )
+				ptr[0] = _T('_');
+		}
+
+
+		if ( InitializeOptionsFromReg(szBuffer) )
 		{
 			UpdateDialogElements(hwndDlg);
 			return TRUE;
 		}
-		//TODO
-		//
-		// Windows XP uses unexpanded environment vars to get path
-		// i.e. c:\windows\system32\cmd.exe
-		// becomes
-		// %SystemRoot%_system32_cmd.exe
-
+		UpdateDialogElements(hwndDlg);
+
+	}
+	else
+	{
+
+		if ( InitializeOptionsFromReg( _T("Console")) )
+		{
+			UpdateDialogElements(hwndDlg);
+			return TRUE;
+
+		}
 	}
 
 	return TRUE;




More information about the Ros-diffs mailing list