Mercurial > vim
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 } |