| File src/vifm.c changed (mode: 100644) (index e6a60737b..9aca4f77d) |
| ... |
... |
static int |
| 567 |
567 |
run_converter(int vifm_like_mode) |
run_converter(int vifm_like_mode) |
| 568 |
568 |
{ |
{ |
| 569 |
569 |
#ifndef _WIN32 |
#ifndef _WIN32 |
| 570 |
|
char buf[PATH_MAX]; |
|
| 571 |
|
snprintf(buf, sizeof(buf), "vifmrc-converter %d", vifm_like_mode); |
|
| 572 |
|
return shellout(buf, -1, 1); |
|
|
570 |
|
char cmd[PATH_MAX]; |
|
571 |
|
snprintf(cmd, sizeof(cmd), "vifmrc-converter %d", vifm_like_mode); |
|
572 |
|
return shellout(cmd, -1, 0); |
| 573 |
573 |
#else |
#else |
| 574 |
|
TCHAR buf[PATH_MAX + 2]; |
|
| 575 |
|
TCHAR *last_path_component; |
|
|
574 |
|
char cmd[2*PATH_MAX]; |
| 576 |
575 |
int returned_exit_code; |
int returned_exit_code; |
|
576 |
|
char *name_part; |
| 577 |
577 |
|
|
| 578 |
|
if(GetModuleFileName(NULL, buf, ARRAY_LEN(buf)) == 0) |
|
|
578 |
|
if(GetModuleFileName(NULL, cmd, PATH_MAX) == 0) |
|
579 |
|
{ |
| 579 |
580 |
return -1; |
return -1; |
|
581 |
|
} |
| 580 |
582 |
|
|
| 581 |
|
/* Remove last path component. */ |
|
| 582 |
|
last_path_component = _tcsrchr(buf, _T('\\')) + 1; |
|
| 583 |
|
*last_path_component = _T('\0'); |
|
| 584 |
|
|
|
|
583 |
|
/* Override last path component. */ |
|
584 |
|
name_part = strrchr(cmd, '\\'); |
|
585 |
|
name_part = (name_part == NULL) ? cmd : (name_part + 1); |
| 585 |
586 |
switch(vifm_like_mode) |
switch(vifm_like_mode) |
| 586 |
587 |
{ |
{ |
| 587 |
588 |
case 2: |
case 2: |
| 588 |
|
_tcscat(buf, _T("vifmrc-converter 2")); |
|
|
589 |
|
strcpy(name_part, "vifmrc-converter 2"); |
| 589 |
590 |
break; |
break; |
| 590 |
591 |
case 1: |
case 1: |
| 591 |
|
_tcscat(buf, _T("vifmrc-converter 1")); |
|
|
592 |
|
strcpy(name_part, "vifmrc-converter 1"); |
| 592 |
593 |
break; |
break; |
| 593 |
594 |
|
|
| 594 |
595 |
default: |
default: |
| 595 |
|
_tcscat(buf, _T("vifmrc-converter 0")); |
|
|
596 |
|
strcpy(name_part, "vifmrc-converter 0"); |
| 596 |
597 |
break; |
break; |
| 597 |
598 |
} |
} |
| 598 |
599 |
|
|
| 599 |
|
return win_exec_cmd(buf, &returned_exit_code); |
|
|
600 |
|
return win_exec_cmd(cmd, &returned_exit_code); |
| 600 |
601 |
#endif |
#endif |
| 601 |
602 |
} |
} |
| 602 |
603 |
|
|