home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OS9000 / APPS / diff.lzh / diff / system.h < prev    next >
Text File  |  1986-04-24  |  5KB  |  247 lines

  1. /* System dependent declarations.
  2.    Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
  3.  
  4. $Id: system.h_v 1.1 96/04/23 02:56:50 hiro Exp $
  5.  
  6. This file is part of GNU DIFF.
  7.  
  8. GNU DIFF is free software; you can redistribute it and/or modify
  9. it under the terms of the GNU General Public License as published by
  10. the Free Software Foundation; either version 2, or (at your option)
  11. any later version.
  12.  
  13. GNU DIFF is distributed in the hope that it will be useful,
  14. but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. GNU General Public License for more details.
  17.  
  18. You should have received a copy of the GNU General Public License
  19. along with GNU DIFF; see the file COPYING.  If not, write to
  20. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  21.  
  22. /* We must define `volatile' and `const' first (the latter inside config.h),
  23.    so that they're used consistently in all system includes.  */
  24. #if !defined(__STDC__)
  25. #ifndef volatile
  26. #define volatile
  27. #endif
  28. #endif
  29.  
  30. #ifdef _OS9000
  31. #include <types.h>
  32. #include "stat.h"
  33. #include "os9k.h"
  34. #else
  35. #include <config.h>
  36.  
  37. #include <sys/types.h>
  38. #include <sys/stat.h>
  39. #endif
  40.  
  41. #if defined(__STDC__)
  42. #define PARAMS(args) args
  43. #define VOID void
  44. #else
  45. #define PARAMS(args) ()
  46. #define VOID char
  47. #endif
  48.  
  49. #if defined(STAT_MACROS_BROKEN)
  50. #undef S_ISBLK
  51. #undef S_ISCHR
  52. #undef S_ISDIR
  53. #undef S_ISFIFO
  54. #undef S_ISREG
  55. #undef S_ISSOCK
  56. #endif
  57. #ifndef S_ISDIR
  58. #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
  59. #endif
  60. #ifndef S_ISREG
  61. #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
  62. #endif
  63. #if !defined(S_ISBLK) && defined(S_IFBLK)
  64. #define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
  65. #endif
  66. #if !defined(S_ISCHR) && defined(S_IFCHR)
  67. #define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
  68. #endif
  69. #if !defined(S_ISFIFO) && defined(S_IFFIFO)
  70. #define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO)
  71. #endif
  72. #if !defined(S_ISSOCK) && defined(S_IFSOCK)
  73. #define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
  74. #endif
  75.  
  76. #ifndef S_IXOTH
  77. #define S_IXOTH 1
  78. #endif
  79. #ifndef S_IXGRP
  80. #define S_IXGRP (S_IXOTH << 3)
  81. #endif
  82. #ifndef S_IXUSR
  83. #define S_IXUSR (S_IXGRP << 3)
  84. #endif
  85.  
  86. #if defined(HAVE_UNISTD_H)
  87. #include <unistd.h>
  88. #endif
  89.  
  90. #ifndef SEEK_SET
  91. #define SEEK_SET 0
  92. #endif
  93. #ifndef SEEK_CUR
  94. #define SEEK_CUR 1
  95. #endif
  96.  
  97. #ifndef STDIN_FILENO
  98. #define STDIN_FILENO 0
  99. #endif
  100. #ifndef STDOUT_FILENO
  101. #define STDOUT_FILENO 1
  102. #endif
  103. #ifndef STDERR_FILENO
  104. #define STDERR_FILENO 2
  105. #endif
  106.  
  107. #if defined(HAVE_TIME_H) || defined(_OS9000)
  108. #include <time.h>
  109. #else
  110. #include <sys/time.h>
  111. #endif
  112.  
  113. #ifdef _OS9000
  114. #include <modes.h>
  115. #else
  116. #if defined(HAVE_FCNTL_H)
  117. #include <fcntl.h>
  118. #else
  119. #include <sys/file.h>
  120. #endif
  121. #endif
  122.  
  123. #ifdef _OS9000
  124. #define dup2(f,t)    (close (t),  dup(f))
  125. #else
  126. #if !defined(HAVE_DUP2)
  127. #define dup2(f,t)    (close (t),  fcntl (f,F_DUPFD,t))
  128. #endif
  129. #endif
  130.  
  131. #ifndef O_RDONLY
  132. #ifdef _OS9000
  133. #include <modes.h>
  134. #define O_RDONLY S_IREAD
  135. #else
  136. #define O_RDONLY 0
  137. #endif
  138. #endif
  139.  
  140. #if defined(HAVE_SYS_WAIT_H)
  141. #ifndef _POSIX_VERSION
  142. /* Prevent the NeXT prototype using union wait from causing problems.  */
  143. #define wait system_wait
  144. #endif
  145. #include <sys/wait.h>
  146. #ifndef _POSIX_VERSION
  147. #undef wait
  148. #endif
  149. #endif /* HAVE_SYS_WAIT_H */
  150.  
  151. #ifndef WEXITSTATUS
  152. #define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
  153. #undef WIFEXITED        /* Avoid 4.3BSD incompatibility with Posix.  */
  154. #endif
  155. #ifndef WIFEXITED
  156. #define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
  157. #endif
  158.  
  159. #if defined(HAVE_ST_BLKSIZE)
  160. #define STAT_BLOCKSIZE(s) (s).st_blksize
  161. #else
  162. #define STAT_BLOCKSIZE(s) (8 * 1024)
  163. #endif
  164.  
  165. #if defined(DIRENT) || defined (_POSIX_VERSION)
  166. #include <dirent.h>
  167. #else /* ! (DIRENT || defined (_POSIX_VERSION)) */
  168. #ifdef _OS9000
  169. #else
  170. #if SYSNDIR
  171. #include <sys/ndir.h>
  172. #else
  173. #if SYSDIR
  174. #include <sys/dir.h>
  175. #else
  176. #include <ndir.h>
  177. #endif
  178. #endif
  179. #ifdef dirent
  180. #undef dirent
  181. #endif
  182. #define dirent direct
  183. #endif
  184. #endif /* ! (DIRENT || defined (_POSIX_VERSION)) */
  185.  
  186. #if defined(HAVE_VFORK_H)
  187. #include <vfork.h>
  188. #endif
  189.  
  190. #if defined(HAVE_STDLIB_H)
  191. #include <stdlib.h>
  192. #else
  193. VOID *malloc ();
  194. VOID *realloc ();
  195. #endif
  196. #ifndef getenv
  197. char *getenv ();
  198. #endif
  199.  
  200. #if defined(HAVE_LIMITS_H)
  201. #include <limits.h>
  202. #endif
  203. #ifndef INT_MAX
  204. #define INT_MAX 2147483647
  205. #endif
  206. #ifndef CHAR_BIT
  207. #define CHAR_BIT 8
  208. #endif
  209.  
  210. #if defined(HAVE_STRING_H)
  211. #include <string.h>
  212. #ifndef bzero
  213. #define bzero(s,n) memset (s,0,n)
  214. #endif
  215. #else /* !HAVE_STRING_H */
  216. #include <strings.h>
  217. #ifndef strchr
  218. #define strchr index
  219. #endif
  220. #ifndef strrchr
  221. #define strrchr rindex
  222. #endif
  223. #ifndef _OS9000
  224. #ifndef memcpy
  225. #define memcpy(d,s,n) bcopy (s,d,n)
  226. #endif
  227. #ifndef memcmp
  228. #define memcmp(s1,s2,n) bcmp (s1,s2,n)
  229. #endif
  230. #endif
  231. #endif /* !HAVE_STRING_H */
  232. #if !defined(HAVE_MEMCHR)
  233. char *memchr ();
  234. #endif
  235.  
  236. #include <errno.h>
  237. #if !defined(STDC_HEADERS)
  238. extern int errno;
  239. #endif
  240.  
  241. #ifndef min
  242. #define min(a,b) ((a) <= (b) ? (a) : (b))
  243. #endif
  244. #ifndef max
  245. #define max(a,b) ((a) >= (b) ? (a) : (b))
  246. #endif
  247.