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

Reply via email to