https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d5a4e534aeed0c9c37e45…
commit d5a4e534aeed0c9c37e45a7e6cc0feba9721ea58
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Wed May 13 22:21:17 2020 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Wed May 13 22:21:17 2020 +0900
[ROSAPPS][MAN] Don't hardcode C: drive (#2780)
CORE-13235
---
modules/rosapps/applications/sysutils/man/man.c | 38 +++++++++++++++++--------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/modules/rosapps/applications/sysutils/man/man.c
b/modules/rosapps/applications/sysutils/man/man.c
index e382972b08d..825b7954396 100644
--- a/modules/rosapps/applications/sysutils/man/man.c
+++ b/modules/rosapps/applications/sysutils/man/man.c
@@ -15,6 +15,7 @@
*/
+#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
@@ -37,7 +38,7 @@ int AnalyzeFile();
/*====[Globals]====*/
FILE* manfile;
char OpenFlag=0;
-char manpath[MAXLINE]="c:\\man\\";
+char manpath[MAX_PATH];
/*=================*/
void
@@ -49,21 +50,34 @@ SetCl(WORD cl)
int
OpenF(char* name)
{
- int retval=0;
- char *manpath_local=(char*)malloc(sizeof(char)*MAXLINE);
+ int ret = 0;
+ char *cp;
- strcpy(manpath_local, manpath); //save mandir value
+ /* C:\man\\... */
+ cp = getenv("SystemDrive");
+ if (cp && *cp)
+ {
+ strcpy(manpath, cp);
+ strcat(manpath, "\\man\\");
+ }
+ else
+ {
+ strcpy(manpath, "C:\\man\\");
+ }
+ strcat(manpath, name);
- if((manfile=fopen((strcat(manpath_local,name)),"r"))!=NULL)
- {
- OpenFlag=1;
- AnalyzeFile();
- }
+ manfile = fopen(manpath, "r");
+ if (manfile != NULL)
+ {
+ OpenFlag = 1;
+ AnalyzeFile();
+ }
else
- retval=-1;
+ {
+ ret = -1;
+ }
- free(manpath_local);
- return retval;
+ return ret;
}
int