comparison src/dosinst.h @ 18753:6e3dc2d630c2 v8.1.2366

patch 8.1.2366: using old C style comments Commit: https://github.com/vim/vim/commit/9bf703d46a79fbffeb829246ea5ce385bddc4166 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 30 19:44:38 2019 +0100 patch 8.1.2366: using old C style comments Problem: Using old C style comments. Solution: Use // comments where appropriate.
author Bram Moolenaar <Bram@vim.org>
date Sat, 30 Nov 2019 19:45:03 +0100
parents 1ec6539cef68
children 1e78bf92f168
comparison
equal deleted inserted replaced
18752:9ec3c9cb4533 18753:6e3dc2d630c2
8 */ 8 */
9 /* 9 /*
10 * dosinst.h: Common code for dosinst.c and uninstall.c 10 * dosinst.h: Common code for dosinst.c and uninstall.c
11 */ 11 */
12 12
13 /* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */ 13 // Visual Studio 2005 has 'deprecated' many of the standard CRT functions
14 #if _MSC_VER >= 1400 14 #if _MSC_VER >= 1400
15 # define _CRT_SECURE_NO_DEPRECATE 15 # define _CRT_SECURE_NO_DEPRECATE
16 # define _CRT_NONSTDC_NO_DEPRECATE 16 # define _CRT_NONSTDC_NO_DEPRECATE
17 #endif 17 #endif
18 18
31 # include <windows.h> 31 # include <windows.h>
32 # include <shlobj.h> 32 # include <shlobj.h>
33 #endif 33 #endif
34 34
35 #ifdef UNIX_LINT 35 #ifdef UNIX_LINT
36 /* Running lint on Unix: Some things are missing. */ 36 // Running lint on Unix: Some things are missing.
37 char *searchpath(char *name); 37 char *searchpath(char *name);
38 #endif 38 #endif
39 39
40 #if defined(UNIX_LINT) 40 #if defined(UNIX_LINT)
41 # include <unistd.h> 41 # include <unistd.h>
50 # define vim_mkdir(x, y) _mkdir((char *)(x)) 50 # define vim_mkdir(x, y) _mkdir((char *)(x))
51 #endif 51 #endif
52 52
53 #define sleep(n) Sleep((n) * 1000) 53 #define sleep(n) Sleep((n) * 1000)
54 54
55 /* ---------------------------------------- */ 55 // ----------------------------------------
56 56
57 57
58 #define BUFSIZE (MAX_PATH*2) /* long enough to hold a file name path */ 58 #define BUFSIZE (MAX_PATH*2) // long enough to hold a file name path
59 #define NUL 0 59 #define NUL 0
60 60
61 #define FAIL 0 61 #define FAIL 0
62 #define OK 1 62 #define OK 1
63 63
79 # define KEY_WOW64_32KEY 0x0200 79 # define KEY_WOW64_32KEY 0x0200
80 # endif 80 # endif
81 81
82 #define VIM_STARTMENU "Programs\\Vim " VIM_VERSION_SHORT 82 #define VIM_STARTMENU "Programs\\Vim " VIM_VERSION_SHORT
83 83
84 int interactive; /* non-zero when running interactively */ 84 int interactive; // non-zero when running interactively
85 85
86 /* 86 /*
87 * Call malloc() and exit when out of memory. 87 * Call malloc() and exit when out of memory.
88 */ 88 */
89 static void * 89 static void *
114 static void 114 static void
115 myexit(int n) 115 myexit(int n)
116 { 116 {
117 if (!interactive) 117 if (!interactive)
118 { 118 {
119 /* Present a prompt, otherwise error messages can't be read. */ 119 // Present a prompt, otherwise error messages can't be read.
120 printf("Press Enter to continue\n"); 120 printf("Press Enter to continue\n");
121 rewind(stdin); 121 rewind(stdin);
122 (void)getchar(); 122 (void)getchar();
123 } 123 }
124 exit(n); 124 exit(n);
150 searchpath(char *name) 150 searchpath(char *name)
151 { 151 {
152 static char widename[2 * BUFSIZE]; 152 static char widename[2 * BUFSIZE];
153 static char location[2 * BUFSIZE + 2]; 153 static char location[2 * BUFSIZE + 2];
154 154
155 /* There appears to be a bug in FindExecutableA() on Windows NT. 155 // There appears to be a bug in FindExecutableA() on Windows NT.
156 * Use FindExecutableW() instead... */ 156 // Use FindExecutableW() instead...
157 MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1, 157 MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1,
158 (LPWSTR)widename, BUFSIZE); 158 (LPWSTR)widename, BUFSIZE);
159 if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"", 159 if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
160 (LPWSTR)location) > (HINSTANCE)32) 160 (LPWSTR)location) > (HINSTANCE)32)
161 { 161 {
204 /* 204 /*
205 * The following code was successfully built with make_mvc.mak. 205 * The following code was successfully built with make_mvc.mak.
206 * The resulting executable worked on Windows 95, Millennium Edition, and 206 * The resulting executable worked on Windows 95, Millennium Edition, and
207 * 2000 Professional. But it was changed after testing... 207 * 2000 Professional. But it was changed after testing...
208 */ 208 */
209 LPITEMIDLIST pidl = 0; /* Pointer to an Item ID list allocated below */ 209 LPITEMIDLIST pidl = 0; // Pointer to an Item ID list allocated below
210 LPMALLOC pMalloc; /* Pointer to an IMalloc interface */ 210 LPMALLOC pMalloc; // Pointer to an IMalloc interface
211 int csidl; 211 int csidl;
212 int alt_csidl = -1; 212 int alt_csidl = -1;
213 static int desktop_csidl = -1; 213 static int desktop_csidl = -1;
214 static int programs_csidl = -1; 214 static int programs_csidl = -1;
215 int *pcsidl; 215 int *pcsidl;
232 printf("\nERROR (internal) unrecognised shell_folder_name: \"%s\"\n\n", 232 printf("\nERROR (internal) unrecognised shell_folder_name: \"%s\"\n\n",
233 shell_folder_name); 233 shell_folder_name);
234 return FAIL; 234 return FAIL;
235 } 235 }
236 236
237 /* Did this stuff before, use the same ID again. */ 237 // Did this stuff before, use the same ID again.
238 if (*pcsidl >= 0) 238 if (*pcsidl >= 0)
239 { 239 {
240 csidl = *pcsidl; 240 csidl = *pcsidl;
241 alt_csidl = -1; 241 alt_csidl = -1;
242 } 242 }
243 243
244 retry: 244 retry:
245 /* Initialize pointer to IMalloc interface */ 245 // Initialize pointer to IMalloc interface
246 if (NOERROR != SHGetMalloc(&pMalloc)) 246 if (NOERROR != SHGetMalloc(&pMalloc))
247 { 247 {
248 printf("\nERROR getting interface for shell_folder_name: \"%s\"\n\n", 248 printf("\nERROR getting interface for shell_folder_name: \"%s\"\n\n",
249 shell_folder_name); 249 shell_folder_name);
250 return FAIL; 250 return FAIL;
251 } 251 }
252 252
253 /* Get an ITEMIDLIST corresponding to the folder code */ 253 // Get an ITEMIDLIST corresponding to the folder code
254 if (NOERROR != SHGetSpecialFolderLocation(0, csidl, &pidl)) 254 if (NOERROR != SHGetSpecialFolderLocation(0, csidl, &pidl))
255 { 255 {
256 if (alt_csidl < 0 || NOERROR != SHGetSpecialFolderLocation(0, 256 if (alt_csidl < 0 || NOERROR != SHGetSpecialFolderLocation(0,
257 alt_csidl, &pidl)) 257 alt_csidl, &pidl))
258 { 258 {
262 } 262 }
263 csidl = alt_csidl; 263 csidl = alt_csidl;
264 alt_csidl = -1; 264 alt_csidl = -1;
265 } 265 }
266 266
267 /* Translate that ITEMIDLIST to a string */ 267 // Translate that ITEMIDLIST to a string
268 r = SHGetPathFromIDList(pidl, shell_folder_path); 268 r = SHGetPathFromIDList(pidl, shell_folder_path);
269 269
270 /* Free the data associated with pidl */ 270 // Free the data associated with pidl
271 pMalloc->lpVtbl->Free(pMalloc, pidl); 271 pMalloc->lpVtbl->Free(pMalloc, pidl);
272 /* Release the IMalloc interface */ 272 // Release the IMalloc interface
273 pMalloc->lpVtbl->Release(pMalloc); 273 pMalloc->lpVtbl->Release(pMalloc);
274 274
275 if (!r) 275 if (!r)
276 { 276 {
277 if (alt_csidl >= 0) 277 if (alt_csidl >= 0)
278 { 278 {
279 /* We probably get here for Windows 95: the "all users" 279 // We probably get here for Windows 95: the "all users"
280 * desktop/start menu entry doesn't exist. */ 280 // desktop/start menu entry doesn't exist.
281 csidl = alt_csidl; 281 csidl = alt_csidl;
282 alt_csidl = -1; 282 alt_csidl = -1;
283 goto retry; 283 goto retry;
284 } 284 }
285 printf("\nERROR translating ITEMIDLIST for shell_folder_name: \"%s\"\n\n", 285 printf("\nERROR translating ITEMIDLIST for shell_folder_name: \"%s\"\n\n",
286 shell_folder_name); 286 shell_folder_name);
287 return FAIL; 287 return FAIL;
288 } 288 }
289 289
290 /* If there is an alternative: verify we can write in this directory. 290 // If there is an alternative: verify we can write in this directory.
291 * This should cause a retry when the "all users" directory exists but we 291 // This should cause a retry when the "all users" directory exists but we
292 * are a normal user and can't write there. */ 292 // are a normal user and can't write there.
293 if (alt_csidl >= 0) 293 if (alt_csidl >= 0)
294 { 294 {
295 char tbuf[BUFSIZE]; 295 char tbuf[BUFSIZE];
296 FILE *fd; 296 FILE *fd;
297 297
327 */ 327 */
328 #define TARGET_COUNT 9 328 #define TARGET_COUNT 9
329 329
330 struct 330 struct
331 { 331 {
332 char *name; /* Vim exe name (without .exe) */ 332 char *name; // Vim exe name (without .exe)
333 char *batname; /* batch file name */ 333 char *batname; // batch file name
334 char *lnkname; /* shortcut file name */ 334 char *lnkname; // shortcut file name
335 char *exename; /* exe file name */ 335 char *exename; // exe file name
336 char *exenamearg; /* exe file name when using exearg */ 336 char *exenamearg; // exe file name when using exearg
337 char *exearg; /* argument for vim.exe or gvim.exe */ 337 char *exearg; // argument for vim.exe or gvim.exe
338 char *oldbat; /* path to existing xxx.bat or NULL */ 338 char *oldbat; // path to existing xxx.bat or NULL
339 char *oldexe; /* path to existing xxx.exe or NULL */ 339 char *oldexe; // path to existing xxx.exe or NULL
340 char batpath[BUFSIZE]; /* path of batch file to create; not 340 char batpath[BUFSIZE]; // path of batch file to create; not
341 created when it's empty */ 341 // created when it's empty
342 } targets[TARGET_COUNT] = 342 } targets[TARGET_COUNT] =
343 { 343 {
344 {"all", "batch files"}, 344 {"all", "batch files"},
345 {"vim", "vim.bat", "Vim.lnk", 345 {"vim", "vim.bat", "Vim.lnk",
346 "vim.exe", "vim.exe", ""}, 346 "vim.exe", "vim.exe", ""},
380 { 380 {
381 char *cmd_path; 381 char *cmd_path;
382 char cmd_buf[BUFSIZE * 2 + 35]; 382 char cmd_buf[BUFSIZE * 2 + 35];
383 char *p; 383 char *p;
384 384
385 /* On WinNT, 'start' is a shell built-in for cmd.exe rather than an 385 // On WinNT, 'start' is a shell built-in for cmd.exe rather than an
386 * executable (start.exe) like in Win9x. */ 386 // executable (start.exe) like in Win9x.
387 cmd_path = searchpath_save("cmd.exe"); 387 cmd_path = searchpath_save("cmd.exe");
388 if (cmd_path != NULL) 388 if (cmd_path != NULL)
389 { 389 {
390 /* There is a cmd.exe, so this might be Windows NT. If it is, 390 // There is a cmd.exe, so this might be Windows NT. If it is,
391 * we need to call cmd.exe explicitly. If it is a later OS, 391 // we need to call cmd.exe explicitly. If it is a later OS,
392 * calling cmd.exe won't hurt if it is present. 392 // calling cmd.exe won't hurt if it is present.
393 * Also, "start" on NT expects a window title argument. 393 // Also, "start" on NT expects a window title argument.
394 */ 394 // Replace the slashes with backslashes.
395 /* Replace the slashes with backslashes. */
396 while ((p = strchr(cmd_path, '/')) != NULL) 395 while ((p = strchr(cmd_path, '/')) != NULL)
397 *p = '\\'; 396 *p = '\\';
398 sprintf(cmd_buf, "%s /c start \"vimcmd\" /wait %s", cmd_path, cmd); 397 sprintf(cmd_buf, "%s /c start \"vimcmd\" /wait %s", cmd_path, cmd);
399 free(cmd_path); 398 free(cmd_path);
400 } 399 }
401 else 400 else
402 { 401 {
403 /* No cmd.exe, just make the call and let the system handle it. */ 402 // No cmd.exe, just make the call and let the system handle it.
404 sprintf(cmd_buf, "start /w %s", cmd); 403 sprintf(cmd_buf, "start /w %s", cmd);
405 } 404 }
406 system(cmd_buf); 405 system(cmd_buf);
407 } 406 }
408 #endif 407 #endif
420 } 419 }
421 420
422 /* 421 /*
423 * The normal chdir() does not change the default drive. This one does. 422 * The normal chdir() does not change the default drive. This one does.
424 */ 423 */
425 /*ARGSUSED*/
426 int 424 int
427 change_drive(int drive) 425 change_drive(int drive)
428 { 426 {
429 char temp[3] = "-:"; 427 char temp[3] = "-:";
430 temp[0] = (char)(drive + 'A' - 1); 428 temp[0] = (char)(drive + 'A' - 1);
436 * Return 0 for success, -1 for failure. 434 * Return 0 for success, -1 for failure.
437 */ 435 */
438 int 436 int
439 mch_chdir(char *path) 437 mch_chdir(char *path)
440 { 438 {
441 if (path[0] == NUL) /* just checking... */ 439 if (path[0] == NUL) // just checking...
442 return 0; 440 return 0;
443 if (path[1] == ':') /* has a drive name */ 441 if (path[1] == ':') // has a drive name
444 { 442 {
445 if (change_drive(mytoupper(path[0]) - 'A' + 1)) 443 if (change_drive(mytoupper(path[0]) - 'A' + 1))
446 return -1; /* invalid drive name */ 444 return -1; // invalid drive name
447 path += 2; 445 path += 2;
448 } 446 }
449 if (*path == NUL) /* drive name only */ 447 if (*path == NUL) // drive name only
450 return 0; 448 return 0;
451 return chdir(path); /* let the normal chdir() do the rest */ 449 return chdir(path); // let the normal chdir() do the rest
452 } 450 }
453 451
454 /* 452 /*
455 * Expand the executable name into a full path name. 453 * Expand the executable name into a full path name.
456 */ 454 */
457 static char * 455 static char *
458 my_fullpath(char *buf, char *fname, int len) 456 my_fullpath(char *buf, char *fname, int len)
459 { 457 {
460 /* Only GetModuleFileName() will get the long file name path. 458 // Only GetModuleFileName() will get the long file name path.
461 * GetFullPathName() may still use the short (FAT) name. */ 459 // GetFullPathName() may still use the short (FAT) name.
462 DWORD len_read = GetModuleFileName(NULL, buf, (size_t)len); 460 DWORD len_read = GetModuleFileName(NULL, buf, (size_t)len);
463 461
464 return (len_read > 0 && len_read < (DWORD)len) ? buf : NULL; 462 return (len_read > 0 && len_read < (DWORD)len) ? buf : NULL;
465 } 463 }
466 464
480 break; 478 break;
481 } 479 }
482 } 480 }
483 481
484 482
485 char installdir[MAX_PATH-9]; /* top of the installation dir, where the 483 char installdir[MAX_PATH-9]; // top of the installation dir, where the
486 install.exe is located, E.g.: 484 // install.exe is located, E.g.:
487 "c:\vim\vim60" */ 485 // "c:\vim\vim60"
488 int runtimeidx; /* index in installdir[] where "vim60" starts */ 486 int runtimeidx; // index in installdir[] where "vim60" starts
489 char *sysdrive; /* system drive or "c:\" */ 487 char *sysdrive; // system drive or "c:\"
490 488
491 /* 489 /*
492 * Setup for using this program. 490 * Setup for using this program.
493 * Sets "installdir[]". 491 * Sets "installdir[]".
494 */ 492 */
495 static void 493 static void
496 do_inits(char **argv) 494 do_inits(char **argv)
497 { 495 {
498 /* Find out the full path of our executable. */ 496 // Find out the full path of our executable.
499 if (my_fullpath(installdir, argv[0], sizeof(installdir)) == NULL) 497 if (my_fullpath(installdir, argv[0], sizeof(installdir)) == NULL)
500 { 498 {
501 printf("ERROR: Cannot get name of executable\n"); 499 printf("ERROR: Cannot get name of executable\n");
502 myexit(1); 500 myexit(1);
503 } 501 }
504 /* remove the tail, the executable name "install.exe" */ 502 // remove the tail, the executable name "install.exe"
505 remove_tail(installdir); 503 remove_tail(installdir);
506 504
507 /* change to the installdir */ 505 // change to the installdir
508 mch_chdir(installdir); 506 mch_chdir(installdir);
509 507
510 /* Find the system drive. Only used for searching the Vim executable, not 508 // Find the system drive. Only used for searching the Vim executable, not
511 * very important. */ 509 // very important.
512 sysdrive = getenv("SYSTEMDRIVE"); 510 sysdrive = getenv("SYSTEMDRIVE");
513 if (sysdrive == NULL || *sysdrive == NUL) 511 if (sysdrive == NULL || *sysdrive == NUL)
514 sysdrive = "C:\\"; 512 sysdrive = "C:\\";
515 } 513 }