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

编辑器/阅读器

开发平台:

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.  * MSDOS 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. #ifdef DJGPP
  17. # include <fcntl.h> /* defines _USE_LFN */
  18. # define USE_LONG_FNAME _USE_LFN    /* decide at run time */
  19. # define USE_FNAME_CASE
  20. #else
  21. # define SHORT_FNAME /* always 8.3 file name */
  22. #endif
  23. #ifdef DOS_MOUSE
  24. # define USE_MOUSE /* include mouse support */
  25. #endif
  26. #define HAVE_STDLIB_H
  27. #define HAVE_STRING_H
  28. #define HAVE_FCNTL_H
  29. #define HAVE_STRCSPN
  30. #define HAVE_STRICMP
  31. #define HAVE_STRFTIME /* guessed */
  32. #define HAVE_STRNICMP
  33. #define HAVE_MEMSET
  34. #define HAVE_QSORT
  35. #if defined(__DATE__) && defined(__TIME__)
  36. # define HAVE_DATE_TIME
  37. #endif
  38. #define BREAKCHECK_SKIP     1 /* call mch_breakcheck() each time, it's fast */
  39. #ifdef DJGPP
  40. # define SIZEOF_INT 4 /* 32 bit ints */
  41. # define DOS32
  42. #else
  43. # define SIZEOF_INT 2 /* 16 bit ints */
  44. # define SMALL_MALLOC /* 16 bit storage allocation */
  45. # define DOS16
  46. #endif
  47. /*
  48.  * Borland C++ 3.1 doesn't have _RTLENTRYF
  49.  */
  50. #ifdef __BORLANDC__
  51. # if __BORLANDC__ < 0x450
  52. #  define _RTLENTRYF
  53. # endif
  54. #endif
  55. #define FNAME_ILLEGAL ""*?><|" /* illegal characters in a file name */
  56. #include <dos.h>
  57. #include <dir.h>
  58. #include <time.h>
  59. #ifdef DJGPP
  60. # include <unistd.h>
  61. # define HAVE_LOCALE_H
  62. # define setlocale(c, p)    djgpp_setlocale()
  63. #endif
  64. #ifndef DJGPP
  65. typedef long off_t;
  66. #endif
  67. /*
  68.  * Try several directories to put the temp files.
  69.  */
  70. #define TEMPDIRNAMES "$TMP", "$TEMP", "c:\TMP", "c:\TEMP", ""
  71. #define TEMPNAME "v?XXXXXX"
  72. #define TEMPNAMELEN 128
  73. #ifndef MAXMEM
  74. # define MAXMEM 256 /* use up to 256Kbyte for buffer */
  75. #endif
  76. #ifndef MAXMEMTOT
  77. # define MAXMEMTOT 0 /* decide in set_init */
  78. #endif
  79. #ifdef DJGPP
  80. # define BASENAMELEN  (_USE_LFN?250:8) /* length of base of file name */
  81. #else
  82. # define BASENAMELEN     8 /* length of base of file name */
  83. #endif
  84. /* codes for msdos mouse event */
  85. #define MSDOS_MOUSE_LEFT 0x01
  86. #define MSDOS_MOUSE_RIGHT 0x02
  87. #define MSDOS_MOUSE_MIDDLE 0x04
  88. #ifdef DJGPP
  89. int mch_rename(const char *OldFile, const char *NewFile);
  90. #else
  91. # define mch_rename(src, dst) rename(src, dst)
  92. #endif
  93. #define mch_setenv(name, val, x) setenv(name, val, x)