diff --git a/src/sbbs3/scfg/scfg.c b/src/sbbs3/scfg/scfg.c index 0e5c1e165200fdd20ea477313823b8e97b52f442..ce60d2d01a3b1f495aa6afcefd3515565c66f428 100644 --- a/src/sbbs3/scfg/scfg.c +++ b/src/sbbs3/scfg/scfg.c @@ -381,6 +381,21 @@ void set_cfg_filename(const char* hostname) snprintf(cfg.filename, sizeof cfg.filename, "%ssbbs%s%s.ini", cfg.ctrl_dir, *hostname ? ".":"", hostname); } +#ifdef _WIN32 + #define printf cprintf +#endif + +void banner() +{ + char compiler[32]; + + DESCRIBE_COMPILER(compiler); + + printf("\nSynchronet Configuration Utility (%s) v%s%c " COPYRIGHT_NOTICE + "\n",PLATFORM_DESC, VERSION, REVISION); + printf("\nCompiled %s/%s %s %s with %s\n", GIT_BRANCH, GIT_HASH, __DATE__, __TIME__, compiler); +} + int main(int argc, char **argv) { char* p; @@ -390,14 +405,12 @@ int main(int argc, char **argv) BOOL door_mode=FALSE; BOOL alt_chars = FALSE; int ciolib_mode=CIOLIB_MODE_AUTO; - char compiler[32]; - - DESCRIBE_COMPILER(compiler); - - printf("\nSynchronet Configuration Utility (%s) v%s%c " COPYRIGHT_NOTICE - "\n",PLATFORM_DESC, VERSION, REVISION); - printf("\nCompiled %s/%s %s %s with %s\n", GIT_BRANCH, GIT_HASH, __DATE__, __TIME__, compiler); +#if defined(_WIN32) + cio_api.options |= CONIO_OPT_DISABLE_CLOSE; +#else + banner(); +#endif xp_randomize(); cfg.size=sizeof(cfg); @@ -493,10 +506,22 @@ int main(int argc, char **argv) case 'I': ciolib_mode=CIOLIB_MODE_CURSES_ASCII; break; -#endif +#elif defined _WIN32 case 'W': ciolib_mode=CIOLIB_MODE_CONIO; break; + case 'G': + switch (toupper(argv[i][3])) { + case 0: + case 'W': + ciolib_mode = CIOLIB_MODE_GDI; + break; + case 'F': + ciolib_mode = CIOLIB_MODE_GDI_FULLSCREEN; + break; + } + break; +#endif case 'D': door_mode=TRUE; break; @@ -514,7 +539,16 @@ int main(int argc, char **argv) auto_save=TRUE; break; default: - USAGE: + USAGE: +#ifdef _WIN32 + uifc.size=sizeof(uifc); + uifc.mode |= UIFC_NOMOUSE; + uifc.scrn_len = 40; + initciolib(CIOLIB_MODE_CONIO); + uifcini32(&uifc); + banner(); +#endif + printf("\nusage: scfg [ctrl_dir] [options]" "\n\noptions:\n\n" "-w run initial setup wizard\n" @@ -534,20 +568,28 @@ int main(int argc, char **argv) "-host=<name> set hostname to use for alternate sbbs.ini file\n" "-iX set interface mode to X (default=auto) where X is one of:\n" #ifdef __unix__ - " X = X11 mode\n" - " C = Curses mode\n" - " F = Curses mode with forced IBM charset\n" - " I = Curses mode with forced ASCII charset\n" -#else - " W = Win32 console mode\n" -#endif - " A = ANSI mode\n" - " D = standard input/output/door mode\n" + " X = X11 mode\n" + " C = Curses mode\n" + " F = Curses mode with forced IBM charset\n" + " I = Curses mode with forced ASCII charset\n" +#elif defined(_WIN32) + " W = Win32 console mode\n" +#if defined(WITH_GDI) + " G = Win32 graphics mode\n" + " GF = Win32 graphics mode, full screen\n" +#endif // WITH_GDI +#endif // _WIN32 + " A = ANSI mode\n" + " D = standard input/output/door mode\n" "-A use alternate (ASCII) characters for arrow symbols\n" "-v# set video mode to # (default=auto)\n" "-l# set screen lines to # (default=auto-detect)\n" "-y automatically save changes (don't ask)\n" ); +#ifdef _WIN32 + printf("\nHit a key to close..."); + getch(); +#endif exit(0); } } diff --git a/src/sbbs3/scfg/scfg.vcxproj b/src/sbbs3/scfg/scfg.vcxproj index c5b3cca82caf08dff37319f6b9f3da5e37977bb4..fd9653917eca867b8a7fe94de1c737d682e64f57 100644 --- a/src/sbbs3/scfg/scfg.vcxproj +++ b/src/sbbs3/scfg/scfg.vcxproj @@ -34,7 +34,6 @@ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" /> <Import Project="..\..\xpdev\xpdev.props" /> <Import Project="..\..\smblib\smblib.props" /> - <Import Project="..\..\conio\conio.props" /> <Import Project="..\..\uifc\uifc.props" /> <Import Project="..\..\build\undeprecate.props" /> <Import Project="..\..\build\target_ia32.props" /> @@ -42,13 +41,13 @@ <Import Project="..\..\encode\encode.props" /> <Import Project="..\..\..\3rdp\win32.release\cryptlib\cryptlib.props" /> <Import Project="..\..\..\3rdp\win32.release\libarchive\libarchive.props" /> + <Import Project="..\..\conio\conio_gdi.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" /> <Import Project="..\..\xpdev\xpdev.props" /> <Import Project="..\..\smblib\smblib.props" /> - <Import Project="..\..\conio\conio.props" /> <Import Project="..\..\uifc\uifc.props" /> <Import Project="..\..\build\undeprecate.props" /> <Import Project="..\..\build\target_ia32.props" /> @@ -56,6 +55,7 @@ <Import Project="..\..\encode\encode.props" /> <Import Project="..\..\..\3rdp\win32.release\cryptlib\cryptlib.props" /> <Import Project="..\..\..\3rdp\win32.release\libarchive\libarchive.props" /> + <Import Project="..\..\conio\conio_gdi.props" /> </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup> @@ -97,7 +97,7 @@ <SuppressStartupBanner>true</SuppressStartupBanner> <GenerateDebugInformation>true</GenerateDebugInformation> <ProgramDatabaseFile>.\msvc.win32.exe.debug/scfg.pdb</ProgramDatabaseFile> - <SubSystem>Console</SubSystem> + <SubSystem>Windows</SubSystem> <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention> </DataExecutionPrevention> @@ -139,7 +139,7 @@ <OutputFile>.\msvc.win32.exe.release/scfg.exe</OutputFile> <SuppressStartupBanner>true</SuppressStartupBanner> <ProgramDatabaseFile>.\msvc.win32.exe.release/scfg.pdb</ProgramDatabaseFile> - <SubSystem>Console</SubSystem> + <SubSystem>Windows</SubSystem> <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention> </DataExecutionPrevention> @@ -238,8 +238,8 @@ </ClCompile> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\..\conio\conio.vcxproj"> - <Project>{84592e48-27ca-48a6-b9c6-243d2347a578}</Project> + <ProjectReference Include="..\..\conio\conio_gdi.vcxproj"> + <Project>{fbcce03b-65ee-44a1-bbe1-b1f789d223a1}</Project> </ProjectReference> <ProjectReference Include="..\..\smblib\smblib.vcxproj"> <Project>{d674842b-2f41-42cb-9426-b3c4b0682574}</Project>