vimrun.c
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:1k
源码类别:

编辑器/阅读器

开发平台:

DOS

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  *
  3.  * VIM - Vi IMproved by Bram Moolenaar
  4.  * this file by Vince Negri
  5.  *
  6.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  7.  * Do ":help credits" in Vim to see a list of people who contributed.
  8.  */
  9. /*
  10.  * vimrun.c - Tiny Win32 program to safely run an external command in a
  11.  *       DOS console.
  12.  */
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <conio.h>
  16. #ifdef __BORLANDC__
  17. extern char *
  18. #ifdef _RTLDLL
  19. __import
  20. #endif
  21. _oscmd;
  22. # define _kbhit kbhit
  23. # define _getch getch
  24. #else
  25. extern char *_acmdln;
  26. #endif
  27.     int
  28. main(void)
  29. {
  30.     const char *p;
  31.     int retval;
  32.     int inquote = 0;
  33. #ifdef __BORLANDC__
  34.     p = _oscmd;
  35. #else
  36.     p = _acmdln;
  37. #endif
  38.     /*
  39.      * Skip the executable name
  40.      */
  41.     while (*p)
  42.     {
  43. if (*p == '"')
  44.     inquote = !inquote;
  45. else if (!inquote && *p == ' ')
  46. {
  47.     ++p;
  48.     break;
  49. }
  50. ++p;
  51.     }
  52.     /* Print the command, including quotes and redirection. */
  53.     puts(p);
  54.     retval = system(p);
  55.     if (retval != 0)
  56. printf("%d returnedn", retval);
  57.     puts("Hit any key to close this window...");
  58.     while (_kbhit())
  59. (void)_getch();
  60.     (void)_getch();
  61.     return retval;
  62. }