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

编辑器/阅读器

开发平台:

DOS

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  *
  3.  * VIM - Vi IMproved by Bram Moolenaar
  4.  *
  5.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  6.  * Do ":help credits" in Vim to see a list of people who contributed.
  7.  */
  8. /*
  9.  * Win32 (Windows NT and Windows 95) machine-dependent things.
  10.  */
  11. #include "os_dos.h" /* common MS-DOS and Win32 stuff */
  12. #define BINARY_FILE_IO
  13. #define USE_EXE_NAME /* use argv[0] for $VIM */
  14. #define NO_COOKED_INPUT /* mch_inchar() doesn't return whole lines */
  15. #define SYNC_DUP_CLOSE /* sync() a file with dup() and close() */
  16. #define HAVE_STRING_H
  17. #define HAVE_STRCSPN
  18. #ifndef __GNUC__
  19. #define HAVE_STRICMP
  20. #define HAVE_STRNICMP
  21. #endif
  22. #define HAVE_STRFTIME /* guessed */
  23. #define HAVE_MEMSET
  24. #define USE_TMPNAM /* use tmpnam() instead of mktemp() */
  25. #define HAVE_LOCALE_H
  26. #define HAVE_FCNTL_H
  27. #define HAVE_QSORT
  28. #define USE_FNAME_CASE /* adjust case of file names */
  29. #ifdef DOS_MOUSE
  30. # define USE_MOUSE /* include mouse support */
  31. #endif
  32. #ifndef USE_CLIPBOARD
  33. # define USE_CLIPBOARD /* include clipboard support */
  34. #endif
  35. #if defined(__DATE__) && defined(__TIME__)
  36. # define HAVE_DATE_TIME
  37. #endif
  38. #ifndef USE_GUI_WIN32 /* GUI works different */
  39. # define BREAKCHECK_SKIP    1 /* call mch_breakcheck() each time, it's fast */
  40. #endif
  41. #ifdef USE_GUI_WIN32
  42. # define NO_CONSOLE /* don't included console-only code */
  43. #endif
  44. /* toupper() is not really broken, but it's very slow. Probably because of
  45.  * using unicde characters on Windows NT */
  46. #define BROKEN_TOUPPER
  47. #define FNAME_ILLEGAL ""*?><|" /* illegal characters in a file name */
  48. #define SIZEOF_INT 4
  49. #include <stdlib.h>
  50. #include <time.h>
  51. /*
  52.  * Win32 has plenty of memory, use large buffers
  53.  */
  54. #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
  55. #define MAXPATHL    _MAX_PATH /* Win32 has long paths and plenty of memory */
  56. #define BASENAMELEN (MAXPATHL-5) /* length of base of file name */
  57. #ifndef MAXMEM
  58. # define MAXMEM (2*1024)    /* use up to 2 Mbyte for a buffer */
  59. #endif
  60. #ifndef MAXMEMTOT
  61. # define MAXMEMTOT (5*1024)    /* use up to 5 Mbyte for Vim */
  62. #endif
  63. /*
  64.  * When generating prototypes for Win32 on Unix, these lines make the syntax
  65.  * errors disappear.  They do not need to be correct.
  66.  */
  67. #ifdef PROTO
  68. # define HANDLE int
  69. # define SMALL_RECT int
  70. # define COORD int
  71. # define SHORT int
  72. # define WORD int
  73. # define DWORD int
  74. # define BOOL int
  75. # define LPSTR int
  76. # define KEY_EVENT_RECORD int
  77. # define MOUSE_EVENT_RECORD int
  78. # define WINAPI
  79. # define CONSOLE_CURSOR_INFO int
  80. # define LPCSTR char_u *
  81. #endif
  82. /*
  83.  * Some simple debugging macros that look and behave a lot like their
  84.  * namesakes in MFC.
  85.  */
  86. #ifdef _DEBUG
  87. # if defined(_MSC_VER) &&  (_MSC_VER >= 1000)
  88.    /* Use the new debugging tools in Visual C++ 4.x */
  89. #  include <crtdbg.h>
  90. #  define ASSERT(f) _ASSERT(f)
  91. # else
  92. #  include <assert.h>
  93. #  define ASSERT(f) assert(f)
  94. # endif
  95. # define VERIFY(f) ASSERT(f)
  96. # define DEBUG_ONLY(f) (f)
  97. # define TRACE Trace
  98. # define TRACE0(sz) Trace(_T("%s"), _T(sz))
  99. # define TRACE1(sz, p1) Trace(_T(sz), p1)
  100. # define TRACE2(sz, p1, p2) Trace(_T(sz), p1, p2)
  101. # define TRACE3(sz, p1, p2, p3) Trace(_T(sz), p1, p2, p3)
  102. /* In debug version, writes trace messages to debug stream */
  103. void __cdecl
  104. Trace(char *pszFormat, ...);
  105. #else /* !_DEBUG */
  106.   /* These macros should all compile away to nothing */
  107. # define ASSERT(f) ((void)0)
  108. # define VERIFY(f) ((void)f)
  109. # define DEBUG_ONLY(f) ((void)0)
  110. # define TRACE 1 ? (void)0 : printf
  111. # define TRACE0(sz)
  112. # define TRACE1(sz, p1)
  113. # define TRACE2(sz, p1, p2)
  114. # define TRACE3(sz, p1, p2, p3)
  115. #endif /* !_DEBUG */
  116. #define ASSERT_POINTER(p, type) 
  117.     ASSERT(((p) != NULL)  &&  IsValidAddress((p), sizeof(type), FALSE))
  118. #define ASSERT_NULL_OR_POINTER(p, type) 
  119.     ASSERT(((p) == NULL)  ||  IsValidAddress((p), sizeof(type), FALSE))
  120. #define mch_setenv(name, val, x) setenv(name, val, x)