tgetopt bug fixed under Win32 - vaccinewars - be a doctor and try to vaccinate … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 445c533b2ee5fa5f4f33fbf0b88b1a21bd75c213 | |
parent c451c6daf36b5469b39ef5ea9cf43e00bdf78363 | |
Author: Ben Webb <[email protected]> | |
Date: Wed, 11 Apr 2001 03:27:51 +0000 | |
getopt bug fixed under Win32 | |
Diffstat: | |
M src/dopeos.c | 18 +++++++++++------- | |
M src/dopewars.c | 20 ++++++++++++++------ | |
M src/winmain.c | 2 ++ | |
3 files changed, 27 insertions(+), 13 deletions(-) | |
--- | |
diff --git a/src/dopeos.c b/src/dopeos.c | |
t@@ -194,22 +194,26 @@ int apos=0; | |
int getopt(int argc,char *argv[],char *str) { | |
int i,c; | |
char *pt; | |
- if (apos>=argc) return EOF; | |
- if (argv[apos] && argv[apos][0]=='-') { | |
+ while (apos<argc && argv[apos]) { | |
+ if (argv[apos][0]!='-') { apos++; return 0; } | |
for (i=1;i<strlen(argv[apos]);i++) { | |
c=argv[apos][i]; | |
pt=index(str,c); | |
if (pt) { | |
- if (*(pt+1)==':' && apos<argc-1) { | |
- optarg=argv[apos+1]; argv[apos+1]=NULL; | |
- } | |
argv[apos][i]='-'; | |
+ if (*(pt+1)==':') { | |
+ if (apos+1<argc && i==strlen(argv[apos])-1) { | |
+ apos++; | |
+ optarg=argv[apos]; | |
+ apos++; | |
+ } else return 0; | |
+ } | |
return c; | |
} | |
} | |
+ apos++; | |
} | |
- apos++; | |
- return 0; | |
+ return EOF; | |
} | |
void sigemptyset(int *mask) {} | |
diff --git a/src/dopewars.c b/src/dopewars.c | |
t@@ -1589,16 +1589,23 @@ void SetupParameters() { | |
/* Now read in the global configuration file */ | |
ReadConfigFile("/etc/dopewars"); | |
-/* Finally, try to read in the .dopewars file in the user's home directory */ | |
+/* Next, try to read in the .dopewars file in the user's home directory */ | |
pt=getenv("HOME"); | |
- if (!pt) return; | |
- ConfigFile=g_strdup_printf("%s/.dopewars",pt); | |
- ReadConfigFile(ConfigFile); | |
- g_free(ConfigFile); | |
+ if (pt) { | |
+ ConfigFile=g_strdup_printf("%s/.dopewars",pt); | |
+ ReadConfigFile(ConfigFile); | |
+ g_free(ConfigFile); | |
+ } | |
+ | |
+#ifdef CYGWIN | |
+/* Finally, try dopewars-config.txt in the current directory (Windows | |
+ systems only) */ | |
+ ReadConfigFile("dopewars-config.txt"); | |
+#endif | |
} | |
void HandleHelpTexts() { | |
- g_print("dopewars version %s\n",VERSION); | |
+ g_print(_("dopewars version %s\n"),VERSION); | |
if (!WantHelp) return; | |
g_print( | |
t@@ -1644,6 +1651,7 @@ void HandleCmdLine(int argc,char *argv[]) { | |
case 'a': WantAntique=1; WantNetwork=0; break; | |
case 'v': WantVersion=1; break; | |
case 'h': | |
+ case 0 : | |
case '?': WantHelp=1; break; | |
case 'f': AssignName(&HiScoreFile,optarg); break; | |
case 'o': AssignName(&ServerName,optarg); break; | |
diff --git a/src/winmain.c b/src/winmain.c | |
t@@ -74,8 +74,10 @@ int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevIns… | |
g_strfreev(split); | |
if (WantVersion || WantHelp) { | |
AllocConsole(); | |
+ g_set_print_handler(Win32PrintFunc); | |
HandleHelpTexts(); | |
newterm(NULL,NULL,NULL); | |
+ g_print(_("Press any key...")); | |
bgetch(); | |
} else { | |
StartNetworking(); |