home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / perl / Source / H / Handy < prev    next >
Encoding:
Text File  |  1990-08-13  |  3.8 KB  |  121 lines

  1. /* $Header: handy.h,v 3.0.1.2 90/08/09 03:48:28 lwall Locked $
  2.  *
  3.  *    Copyright (c) 1989, Larry Wall
  4.  *
  5.  *    You may distribute under the terms of the GNU General Public License
  6.  *    as specified in the README file that comes with the perl 3.0 kit.
  7.  *
  8.  * $Log:    handy.h,v $
  9.  * Revision 3.0.1.2  90/08/09  03:48:28  lwall
  10.  * patch19: various MSDOS and OS/2 patches folded in
  11.  * 
  12.  * Revision 3.0.1.1  89/11/17  15:25:55  lwall
  13.  * patch5: some machines already define TRUE and FALSE
  14.  * 
  15.  * Revision 3.0  89/10/18  15:18:24  lwall
  16.  * 3.0 baseline
  17.  * 
  18.  */
  19.  
  20. #ifdef NULL
  21. #undef NULL
  22. #endif
  23. #ifndef I286
  24. #  define NULL 0
  25. #else
  26. #  define NULL 0L
  27. #endif
  28. #define Null(type) ((type)NULL)
  29. #define Nullch Null(char*)
  30. #define Nullfp Null(FILE*)
  31.  
  32. #ifdef UTS
  33. #define bool int
  34. #else
  35. #define bool char
  36. #endif
  37.  
  38. #ifdef TRUE
  39. #undef TRUE
  40. #endif
  41. #ifdef FALSE
  42. #undef FALSE
  43. #endif
  44. #define TRUE (1)
  45. #define FALSE (0)
  46.  
  47. #define USE(var) (void)(0 ? var=var : 0)
  48.  
  49. #define Ctl(ch) (ch & 037)
  50.  
  51. #define isascii(ch) ((ch & ~0x7f) == 0)
  52.  
  53. #define strNE(s1,s2) (strcmp(s1,s2))
  54. #define strEQ(s1,s2) (!strcmp(s1,s2))
  55. #define strLT(s1,s2) (strcmp(s1,s2) < 0)
  56. #define strLE(s1,s2) (strcmp(s1,s2) <= 0)
  57. #define strGT(s1,s2) (strcmp(s1,s2) > 0)
  58. #define strGE(s1,s2) (strcmp(s1,s2) >= 0)
  59. #define strnNE(s1,s2,l) (strncmp(s1,s2,l))
  60. #define strnEQ(s1,s2,l) (!strncmp(s1,s2,l))
  61.  
  62. #define MEM_SIZE unsigned int
  63.  
  64. /* Line numbers are unsigned, 16 bits. */
  65. typedef unsigned short line_t;
  66. #ifdef lint
  67. #define NOLINE ((line_t)0)
  68. #else
  69. #define NOLINE ((line_t) 65535)
  70. #endif
  71.  
  72. #ifndef lint
  73. #ifndef LEAKTEST
  74. extern char *safemalloc PROTO((MEM_SIZE));
  75. extern char *saferealloc PROTO((char *, MEM_SIZE));
  76. extern void safefree PROTO((char *));
  77. #ifndef MSDOS
  78. #define New(x,v,n,t)  (v = (t*)safemalloc((MEM_SIZE)((n) * sizeof(t))))
  79. #define Newc(x,v,n,t,c)  (v = (c*)safemalloc((MEM_SIZE)((n) * sizeof(t))))
  80. #define Newz(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n) * sizeof(t)))), \
  81.     bzero((char*)(v), (n) * sizeof(t))
  82. #define Renew(v,n,t) (v = (t*)saferealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
  83. #define Renewc(v,n,t,c) (v = (c*)saferealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
  84. #else
  85. #define New(x,v,n,t)  (v = (t*)safemalloc(((unsigned long)(n) * sizeof(t))))
  86. #define Newc(x,v,n,t,c)  (v = (c*)safemalloc(((unsigned long)(n) * sizeof(t))))
  87. #define Newz(x,v,n,t) (v = (t*)safemalloc(((unsigned long)(n) * sizeof(t)))), \
  88.     bzero((char*)(v), (n) * sizeof(t))
  89. #define Renew(v,n,t) (v = (t*)saferealloc((char*)(v),((unsigned long)(n)*sizeof(t))))
  90. #define Renewc(v,n,t,c) (v = (c*)saferealloc((char*)(v),((unsigned long)(n)*sizeof(t))))
  91. #endif /* MSDOS */
  92. #define Safefree(d) safefree((char*)d)
  93. #define Str_new(x,len) str_new(len)
  94. #else /* LEAKTEST */
  95. extern char *safexmalloc PROTO((int, MEM_SIZE));
  96. extern char *safexrealloc PROTO((char *, MEM_SIZE));
  97. extern void safexfree PROTO((char *));
  98. #define New(x,v,n,t)  (v = (t*)safexmalloc(x,(MEM_SIZE)((n) * sizeof(t))))
  99. #define Newc(x,v,n,t,c)  (v = (c*)safexmalloc(x,(MEM_SIZE)((n) * sizeof(t))))
  100. #define Newz(x,v,n,t) (v = (t*)safexmalloc(x,(MEM_SIZE)((n) * sizeof(t)))), \
  101.     bzero((char*)(v), (n) * sizeof(t))
  102. #define Renew(v,n,t) (v = (t*)safexrealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
  103. #define Renewc(v,n,t,c) (v = (c*)safexrealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
  104. #define Safefree(d) safexfree((char*)d)
  105. #define Str_new(x,len) str_new(x,len)
  106. #define MAXXCOUNT 1200
  107. EXT long xcount[MAXXCOUNT];
  108. EXT long lastxcount[MAXXCOUNT];
  109. #endif /* LEAKTEST */
  110. #define Copy(s,d,n,t) (void)bcopy((char*)(s),(char*)(d), (n) * sizeof(t))
  111. #define Zero(d,n,t) (void)bzero((char*)(d), (n) * sizeof(t))
  112. #else /* lint */
  113. #define New(x,v,n,s) (v = Null(s *))
  114. #define Newc(x,v,n,s,c) (v = Null(s *))
  115. #define Newz(x,v,n,s) (v = Null(s *))
  116. #define Renew(v,n,s) (v = Null(s *))
  117. #define Copy(s,d,n,t)
  118. #define Zero(d,n,t)
  119. #define Safefree(d) d = d
  120. #endif /* lint */
  121.