https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d5a4e534aeed0c9c37e45a7e6cc0feba9721ea58
commit d5a4e534aeed0c9c37e45a7e6cc0feba9721ea58 Author: Katayama Hirofumi MZ <[email protected]> AuthorDate: Wed May 13 22:21:17 2020 +0900 Commit: GitHub <[email protected]> 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
