Notepad:
1.  Fixed bug in Goto line command
2.  Wrap long lines setting is persisted in the registry
3.  Fixed length limit bug when wrap long lines is toggled
Modified: trunk/reactos/subsys/system/notepad/dialog.c
Modified: trunk/reactos/subsys/system/notepad/main.c
Modified: trunk/reactos/subsys/system/notepad/main.h
Modified: trunk/reactos/subsys/system/notepad/settings.c

Modified: trunk/reactos/subsys/system/notepad/dialog.c
--- trunk/reactos/subsys/system/notepad/dialog.c	2005-09-30 23:32:24 UTC (rev 18181)
+++ trunk/reactos/subsys/system/notepad/dialog.c	2005-10-01 00:36:17 UTC (rev 18182)
@@ -624,6 +624,8 @@
     DWORD size;
     LPWSTR pTemp;
 
+    Globals.bWrapLongLines = !Globals.bWrapLongLines;
+
     size = GetWindowTextLength(Globals.hEdit) + 1;
     pTemp = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
     if (!pTemp)
@@ -639,13 +641,10 @@
                          0, 0, rc.right, rc.bottom, Globals.hMainWnd,
                          NULL, Globals.hInstance, NULL);
     SendMessage(Globals.hEdit, WM_SETFONT, (WPARAM)Globals.hFont, (LPARAM)FALSE);
+    SendMessage(Globals.hEdit, EM_LIMITTEXT, 0, 0);
     SetWindowTextW(Globals.hEdit, pTemp);
     SetFocus(Globals.hEdit);
     HeapFree(GetProcessHeap(), 0, pTemp);
-    
-    Globals.bWrapLongLines = !Globals.bWrapLongLines;
-    CheckMenuItem(GetMenu(Globals.hMainWnd), CMD_WRAP,
-        MF_BYCOMMAND | (Globals.bWrapLongLines ? MF_CHECKED : MF_UNCHECKED));
 }
 
 VOID DIALOG_SelectFont(VOID)
@@ -770,7 +769,7 @@
 
     if (nLine >= 1)
 	{
-        for (i = 0; pszText[i] && (nLine > 1) && (i < dwStart - 1); i++)
+        for (i = 0; pszText[i] && (nLine > 1) && (i < nLength - 1); i++)
         {
             if (pszText[i] == '\n')
                 nLine--;

Modified: trunk/reactos/subsys/system/notepad/main.c
--- trunk/reactos/subsys/system/notepad/main.c	2005-09-30 23:32:24 UTC (rev 18181)
+++ trunk/reactos/subsys/system/notepad/main.c	2005-10-01 00:36:17 UTC (rev 18182)
@@ -258,6 +258,9 @@
 {
     int enable;
 
+    CheckMenuItem(GetMenu(Globals.hMainWnd), CMD_WRAP,
+        MF_BYCOMMAND | (Globals.bWrapLongLines ? MF_CHECKED : MF_UNCHECKED));
+
     EnableMenuItem(menu, CMD_UNDO,
         SendMessage(Globals.hEdit, EM_CANUNDO, 0, 0) ? MF_ENABLED : MF_GRAYED);
     EnableMenuItem(menu, CMD_PASTE,
@@ -286,7 +289,7 @@
         static const WCHAR editW[] = { 'e','d','i','t',0 };
         RECT rc;
         GetClientRect(hWnd, &rc);
-        Globals.hEdit = CreateWindowEx(EDIT_EXSTYLE, editW, NULL, EDIT_STYLE,
+        Globals.hEdit = CreateWindowEx(EDIT_EXSTYLE, editW, NULL, Globals.bWrapLongLines ? EDIT_STYLE_WRAP : EDIT_STYLE,
                              0, 0, rc.right, rc.bottom, hWnd,
                              NULL, Globals.hInstance, NULL);
         if (!Globals.hEdit)

Modified: trunk/reactos/subsys/system/notepad/main.h
--- trunk/reactos/subsys/system/notepad/main.h	2005-09-30 23:32:24 UTC (rev 18181)
+++ trunk/reactos/subsys/system/notepad/main.h	2005-10-01 00:36:17 UTC (rev 18182)
@@ -23,9 +23,9 @@
 
 #include "notepad_res.h"
 
-#define EDIT_STYLE (WS_CHILD | WS_VISIBLE | WS_VSCROLL \
+#define EDIT_STYLE_WRAP (WS_CHILD | WS_VISIBLE | WS_VSCROLL \
     | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL)
-#define EDIT_STYLE_WRAP (EDIT_STYLE | WS_HSCROLL | ES_AUTOHSCROLL)
+#define EDIT_STYLE (EDIT_STYLE_WRAP | WS_HSCROLL | ES_AUTOHSCROLL)
 #define EDIT_EXSTYLE (WS_EX_CLIENTEDGE)
 
 #define MAX_STRING_LEN      255

Modified: trunk/reactos/subsys/system/notepad/settings.c
--- trunk/reactos/subsys/system/notepad/settings.c	2005-09-30 23:32:24 UTC (rev 18181)
+++ trunk/reactos/subsys/system/notepad/settings.c	2005-10-01 00:36:17 UTC (rev 18182)
@@ -117,6 +117,15 @@
 	return TRUE;
 }
 
+static BOOL QueryBool(HKEY hKey, LPCSTR pszValueName, BOOL *pbResult)
+{
+	DWORD dwResult;
+	if (!QueryDword(hKey, pszValueName, &dwResult))
+		return FALSE;
+	*pbResult = dwResult ? TRUE : FALSE;
+	return TRUE;
+}
+
 static BOOL QueryString(HKEY hKey, LPCSTR pszValueName, LPTSTR pszResult, DWORD dwResultSize)
 {
 	return QueryGeneric(hKey, pszValueName, REG_SZ, pszResult, dwResultSize * sizeof(*pszResult));
@@ -143,6 +152,7 @@
 		QueryByte(hKey,		"lfUnderline",		&Globals.lfFont.lfUnderline);
 		QueryDword(hKey,	"lfWeight",			(DWORD*)&Globals.lfFont.lfWeight);
 		QueryDword(hKey,	"iPointSize",		&dwPointSize);
+		QueryBool(hKey,     "fWrap",            &Globals.bWrapLongLines);
 
 		if (dwPointSize != 0)
 			Globals.lfFont.lfHeight = HeightFromPointSize(dwPointSize);
@@ -210,6 +220,7 @@
 		SaveDword(hKey,		"lfUnderline",		Globals.lfFont.lfUnderline);
 		SaveDword(hKey,		"lfWeight",			Globals.lfFont.lfWeight);
 		SaveDword(hKey,		"iPointSize",		PointSizeFromHeight(Globals.lfFont.lfHeight));
+		SaveDword(hKey,		"fWrap",			Globals.bWrapLongLines ? 1 : 0);
 
 		RegCloseKey(hKey);
 	}