MCPcopy Create free account
hub / github.com/NetHack/NetHack / main

Function main

util/recover.c:68–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66char savename[SAVESIZE]; /* holds relative path of save file from playground */
67
68DISABLE_WARNING_UNREACHABLE_CODE
69
70int
71main(int argc, char *argv[])
72{
73 int argno;
74 const char *dir = (char *) 0, *progname = (char *) 0;
75#ifdef AMIGA
76 char *startdir = (char *) 0;
77#endif
78
79 if (!dir)
80 dir = getenv("NETHACKDIR");
81 if (!dir)
82 dir = getenv("HACKDIR");
83#if defined(EXEPATH)
84 if (!dir)
85 dir = exepath(argv[0]);
86#endif
87 if (argc > 0)
88 progname = argv[0];
89 if (!progname || !*progname)
90 progname = "recover";
91#ifdef VMS
92 /*progname = vms_basebame(progname, FALSE);*/ /* needs vmsfiles.obj */
93#endif
94
95 if (argc < 2 || (argc == 2 && !strcmp(argv[1], "-"))) {
96 Fprintf(stderr, "Usage: %s [ -d directory ] base1 [ base2 ... ]\n",
97 progname);
98#if defined(WIN32) || defined(MSDOS)
99 if (dir) {
100 Fprintf(stderr,
101 "\t(Unless you override it with -d, recover will look \n");
102 Fprintf(stderr, "\t in the %s directory on your system)\n", dir);
103 }
104#endif
105 exit(EXIT_FAILURE);
106 }
107
108 argno = 1;
109 if (!strncmp(argv[argno], "-d", 2)) {
110 dir = argv[argno] + 2;
111 if (*dir == '=' || *dir == ':')
112 dir++;
113 if (!*dir && argc > argno) {
114 argno++;
115 dir = argv[argno];
116 }
117 if (!*dir) {
118 Fprintf(stderr,
119 "%s: flag -d must be followed by a directory name.\n",
120 argv[0]);
121 exit(EXIT_FAILURE);
122 }
123 argno++;
124 }
125#if defined(SECURE) && !defined(VMS)

Callers

nothing calls this directly

Calls 5

getuidFunction · 0.85
getcwdFunction · 0.85
exepathFunction · 0.70
restore_savefileFunction · 0.70
chdirFunction · 0.50

Tested by

no test coverage detected