[ros-diffs] [pschweitzer] 30132: Fixed last bugs (I hope !)

pschweitzer at svn.reactos.org pschweitzer at svn.reactos.org
Sun Nov 4 23:00:09 CET 2007


Author: pschweitzer
Date: Mon Nov  5 01:00:09 2007
New Revision: 30132

URL: http://svn.reactos.org/svn/reactos?rev=30132&view=rev
Log:
Fixed last bugs (I hope !)

Modified:
    trunk/tools/RosBE-Windows/Tools/config/options.c
    trunk/tools/RosBE-Windows/Tools/config/options.h

Modified: trunk/tools/RosBE-Windows/Tools/config/options.c
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Tools/config/options.c?rev=30132&r1=30131&r2=30132&view=diff
==============================================================================
--- trunk/tools/RosBE-Windows/Tools/config/options.c (original)
+++ trunk/tools/RosBE-Windows/Tools/config/options.c Mon Nov  5 01:00:09 2007
@@ -152,19 +152,19 @@
                 }
                 else if (wcscmp(ptr, L"_ROSBE_LOGDIR") == 0)
                 {
-                    wcscpy(LoadedSettings->logdir, ptr2);
+                    wcsncpy(LoadedSettings->logdir, ptr2, wcslen(ptr2)-1);
                 }
                 else if (wcscmp(ptr, L"_ROSBE_MINGWPATH") == 0)
                 {
-                    wcscpy(LoadedSettings->mingwpath, ptr2);
+                    wcsncpy(LoadedSettings->mingwpath, ptr2, wcslen(ptr2)-1);
                 }
                 else if (wcscmp(ptr, L"_ROSBE_OBJPATH") == 0)
                 {
-                    wcscpy(LoadedSettings->objdir, ptr2);
+                    wcsncpy(LoadedSettings->objdir, ptr2, wcslen(ptr2)-1);
                 }
                 else if (wcscmp(ptr, L"_ROSBE_OUTPATH") == 0)
                 {
-                    wcscpy(LoadedSettings->outdir, ptr2);
+                    wcsncpy(LoadedSettings->outdir, ptr2, wcslen(ptr2)-1);
                 }
             }
             free(TTempLine);
@@ -199,12 +199,16 @@
     SetDlgItemText(hwnd, ID_OBJDIR, LoadedSettings->objdir);
     if (wcslen(LoadedSettings->objdir) > 0)
     {
+        LoadedSettings->objstate = 1;
+        SendDlgItemMessage(hwnd, ID_OTHEROBJ, BM_SETCHECK, BST_CHECKED, 0);
         EnableWindow(GetDlgItem(hwnd, ID_BROWSEOBJ), TRUE);
         EnableWindow(GetDlgItem(hwnd, ID_OBJDIR), TRUE);
     }
     SetDlgItemText(hwnd, ID_OUTDIR, LoadedSettings->outdir);
     if (wcslen(LoadedSettings->outdir) > 0)
     {
+        LoadedSettings->outstate = 1;
+        SendDlgItemMessage(hwnd, ID_OTHEROUT, BM_SETCHECK, BST_CHECKED, 0);
         EnableWindow(GetDlgItem(hwnd, ID_BROWSEOUT), TRUE);
         EnableWindow(GetDlgItem(hwnd, ID_OUTDIR), TRUE);
     }
@@ -213,7 +217,7 @@
 VOID SetSaveState(HWND hwnd, PSETTINGS DefaultSettings)
 {
     INT foreground, background;
-    BOOL showtime, writelog, useccache, strip;
+    BOOL showtime, writelog, useccache, strip, objstate, outstate;
     WCHAR logdir[MAX_PATH], objdir[MAX_PATH], outdir[MAX_PATH], mingwpath[MAX_PATH];
     BOOL StateObj = TRUE, StateOut = TRUE, StateLog = TRUE, State = TRUE;
 
@@ -221,6 +225,8 @@
     writelog = (SendDlgItemMessage(hwnd, ID_SAVELOGS, BM_GETCHECK, 0, 0) == BST_CHECKED);
     useccache = (SendDlgItemMessage(hwnd, ID_USECCACHE, BM_GETCHECK, 0, 0) == BST_CHECKED);
     strip = (SendDlgItemMessageW(hwnd, ID_STRIP, BM_GETCHECK, 0, 0) == BST_CHECKED);
+    objstate = (SendDlgItemMessageW(hwnd, ID_OTHEROBJ, BM_GETCHECK, 0, 0) == BST_CHECKED);
+    outstate = (SendDlgItemMessageW(hwnd, ID_OTHEROUT, BM_GETCHECK, 0, 0) == BST_CHECKED);
     foreground = SendDlgItemMessageW(hwnd, IDC_FONT, CB_GETCURSEL, 0, 0);
     background = SendDlgItemMessageW(hwnd, IDC_BACK, CB_GETCURSEL, 0, 0);
     GetDlgItemTextW(hwnd, ID_LOGDIR, logdir, MAX_PATH);
@@ -228,25 +234,26 @@
     GetDlgItemTextW(hwnd, ID_OBJDIR, objdir, MAX_PATH);
     GetDlgItemTextW(hwnd, ID_OUTDIR, outdir, MAX_PATH);
 
-    if (SendDlgItemMessageW(hwnd, ID_OTHEROBJ, BM_GETCHECK, 0, 0) == BST_CHECKED)
-    {
-        if ((wcscmp(objdir, DefaultSettings->objdir) != 0) && wcslen(objdir) > 0)
+    if (objstate)
+    {
+        if ((wcscmp(objdir, DefaultSettings->objdir) != 0) && (wcslen(objdir) > 0))
             StateObj = FALSE;
     }
-    if (SendDlgItemMessageW(hwnd, ID_OTHEROUT, BM_GETCHECK, 0, 0) == BST_CHECKED)
-    {
-        if ((wcscmp(outdir, DefaultSettings->outdir) != 0) && wcslen(outdir) > 0)
+    if (outstate)
+    {
+        if ((wcscmp(outdir, DefaultSettings->outdir) != 0) && (wcslen(outdir) > 0))
             StateOut = FALSE;
     }
     if (writelog)
     {
-        if ((wcscmp(logdir, DefaultSettings->logdir) != 0) && wcslen(logdir) > 0)
+        if ((wcscmp(logdir, DefaultSettings->logdir) != 0) && (wcslen(logdir) > 0))
             StateLog = FALSE;
     }
 
     State ^= ((foreground == DefaultSettings->foreground) && (background == DefaultSettings->background) &&
             (showtime == DefaultSettings->showtime) && (writelog == DefaultSettings->writelog) &&
             (useccache == DefaultSettings->useccache) && (strip == DefaultSettings->strip) &&
+            (objstate == DefaultSettings->objstate) && (outstate == DefaultSettings->outstate) &&
             (StateLog) && (wcscmp(mingwpath, DefaultSettings->mingwpath) == 0) &&
             (StateObj) && (StateOut));
 

Modified: trunk/tools/RosBE-Windows/Tools/config/options.h
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE-Windows/Tools/config/options.h?rev=30132&r1=30131&r2=30132&view=diff
==============================================================================
--- trunk/tools/RosBE-Windows/Tools/config/options.h (original)
+++ trunk/tools/RosBE-Windows/Tools/config/options.h Mon Nov  5 01:00:09 2007
@@ -30,5 +30,7 @@
     BOOL useccache;
     BOOL strip;
     BOOL writelog;
+    BOOL objstate;
+    BOOL outstate;
 }
 SETTINGS, *PSETTINGS;




More information about the Ros-diffs mailing list