[ros-diffs] [cwittich] 34896: use SHGetSpecialFolderPath instead of relying on envvars

cwittich at svn.reactos.org cwittich at svn.reactos.org
Mon Jul 28 12:41:56 CEST 2008


Author: cwittich
Date: Mon Jul 28 05:41:56 2008
New Revision: 34896

URL: http://svn.reactos.org/svn/reactos?rev=34896&view=rev
Log:
use SHGetSpecialFolderPath instead of relying on envvars 

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

Modified: trunk/tools/RosBE/RosBE-Windows/Tools/config/makefile
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Tools/config/makefile?rev=34896&r1=34895&r2=34896&view=diff
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Tools/config/makefile [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Tools/config/makefile [iso-8859-1] Mon Jul 28 05:41:56 2008
@@ -5,9 +5,9 @@
 all: $(TARGET)
 
 CC=gcc
-CFLAGS := -DWIN32 -DUNICODE -O2 -std=c99
+CFLAGS := -DWIN32 -DUNICODE -O2 -std=c99 -D_WIN32_IE=0x0400 -D_WIN32_WINNT=0x0500
 LFLAGS := -mwindows -s
-LIBS :=
+LIBS := -lshell32
 
 SRCS := options.c
 RC := options.rc

Modified: trunk/tools/RosBE/RosBE-Windows/Tools/config/options.c
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Tools/config/options.c?rev=34896&r1=34895&r2=34896&view=diff
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Tools/config/options.c [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Tools/config/options.c [iso-8859-1] Mon Jul 28 05:41:56 2008
@@ -37,12 +37,31 @@
     return TRUE;
 }
 
+static
+const
+WCHAR*
+getConfigFile() 
+{
+    static WCHAR filename[MAX_PATH];
+    if (SHGetSpecialFolderPathW(NULL, filename, CSIDL_APPDATA, FALSE))
+    {
+        if ((wcslen(filename) + wcslen(L"\\RosBE\\rosbe-options.cmd")) < MAX_PATH)
+            wcscat(filename, L"\\RosBE\\rosbe-options.cmd");
+    }
+    else
+    {
+        wcscpy(filename, L"rosbe-options.cmd");
+    }
+    return filename;
+}
+
+
 INT
 WriteSettings(POPTIONS_DLG infoPtr)
 {
     INT foreground, background;
     BOOL showtime, writelog, useccache, strip, objstate, outstate;
-    WCHAR logdir[MAX_PATH], objdir[MAX_PATH], outdir[MAX_PATH], mingwpath[MAX_PATH], checkmgw[MAX_PATH], optionsfile[MAX_PATH];
+    WCHAR logdir[MAX_PATH], objdir[MAX_PATH], outdir[MAX_PATH], mingwpath[MAX_PATH], checkmgw[MAX_PATH];
     WCHAR msgerror[256];
     HANDLE hFile;
     FILE *pFile;
@@ -84,10 +103,7 @@
     }
     CloseHandle(hFile);
 
-    wcscpy(optionsfile, _wgetenv(L"APPDATA"));
-    if ((wcslen(optionsfile) + wcslen(L"\\RosBE\\rosbe-options.cmd")) < MAX_PATH)
-        wcscat(optionsfile, L"\\RosBE\\rosbe-options.cmd");
-    pFile = _wfopen(optionsfile, L"w");
+    pFile = _wfopen(getConfigFile(), L"w");
     if (pFile)
     {
         fwprintf(pFile, L"::\n");
@@ -114,16 +130,12 @@
 VOID LoadSettings(POPTIONS_DLG infoPtr)
 {
     FILE *pFile;
-    WCHAR optionsfile[MAX_PATH];
     WCHAR *ptr, *ptr2;
     WCHAR WTempLine[25+MAX_PATH];
     WCHAR SBTitle[256];
     PSETTINGS LoadedSettings = &infoPtr->Settings;
 
-    wcscpy(optionsfile, _wgetenv(L"APPDATA"));
-    if ((wcslen(optionsfile) + wcslen(L"\\RosBE\\rosbe-options.cmd")) < MAX_PATH)
-        wcscat(optionsfile, L"\\RosBE\\rosbe-options.cmd");
-    pFile = _wfopen(optionsfile, L"r");
+    pFile = _wfopen(getConfigFile(), L"r");
     if (pFile)
     {
         while (fgetws(WTempLine, 24+MAX_PATH, pFile))



More information about the Ros-diffs mailing list