home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / unixtex-6.1b-src.tgz / tar.out / contrib / unixtex / web2c / lib / config.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  4KB  |  145 lines

  1. /* config.h: Master configuration file.  This is included by common.h,
  2.    which everyone includes.  */
  3.  
  4. #ifndef CONFIG_H
  5. #define CONFIG_H
  6.  
  7. /* The stuff from the path searching library.  */
  8. #include <kpathsea/config.h>
  9.  
  10. /* Maximum length of an entire pathname. */
  11. #include <kpathsea/c-pathmx.h>
  12.  
  13. /* How to open a binary file.  */
  14. #include <kpathsea/c-fopen.h>
  15.  
  16. /* Argument parsing.  */
  17. #include "getopt.h"
  18.  
  19. /* Path searching.  */
  20. #include "ourpaths.h"
  21.  
  22. /* We never need the `link' system call, which is sometimes declared in
  23.    <unistd.h>, but we do have lots of variables called `link' in the web
  24.    sources.  */
  25. #ifdef link
  26. #undef link
  27. #endif
  28. #define link link_var
  29.  
  30.  
  31. /* Throw away VMS' library routine `getname', as WEB uses that name.  */
  32. #ifdef VMS
  33. #ifdef getname
  34. #undef getname
  35. #endif
  36. #define getname vms_getname
  37. #endif
  38.  
  39. /* The smallest signed type: use `signed char' if ANSI C, `short' if
  40.    char is unsigned, otherwise `char'.  */
  41. #ifndef SCHAR_TYPE
  42. #ifdef __STDC__
  43. #define SCHAR_TYPE signed char
  44. #else /* not __STDC */
  45. #ifdef __CHAR_UNSIGNED__
  46. #define SCHAR_TYPE short
  47. #else
  48. #define SCHAR_TYPE char
  49. #endif
  50. #endif /* not __STDC__ */
  51. #endif /* not SCHAR_TYPE */
  52. typedef SCHAR_TYPE schar;
  53.  
  54.  
  55. /* The type `integer' must be a signed integer capable of holding at
  56.    least the range of numbers (-2^31)..(2^31-1).  If your compiler goes
  57.    to great lengths to make programs fail, you might have to change this
  58.    definition.  If this changes, you may have to modify
  59.    web2c/fixwrites.c, since it generates code to do integer output using
  60.    "%ld", and casts all integral values to be printed to `long'.
  61.    
  62.    If you define your own INTEGER_TYPE, you have to define your own
  63.    INTEGER_MAX and INTEGER_MIN, too. */
  64. #ifndef INTEGER_TYPE
  65.  
  66. #if defined (LONG_64_BITS) && !defined (NO_FMTBASE_SWAP)
  67. /* If we have 64-bit longs and want to share format files (with 32-bit
  68.    machines), use `int'.  */
  69. #define INTEGER_IS_INT
  70. #endif
  71.  
  72. #ifdef INTEGER_IS_INT
  73. #define INTEGER_TYPE int
  74. #define INTEGER_MAX INT_MAX
  75. #define INTEGER_MIN INT_MIN
  76. #else
  77. #define INTEGER_TYPE long
  78. #define INTEGER_MAX LONG_MAX
  79. #define INTEGER_MIN LONG_MIN
  80. #endif /* not INTEGER_IS_INT */
  81.  
  82. #endif /* not INTEGER_TYPE */
  83.  
  84. typedef INTEGER_TYPE integer;
  85.  
  86.  
  87. #ifdef TeX
  88. /* The type `glueratio' should be a floating point type which won't
  89.    unnecessarily increase the size of the memoryword structure.  This is
  90.    the basic requirement.  On most machines, if you're building a
  91.    normal-sized TeX, then glueratio must probably meet the following
  92.    restriction: sizeof(glueratio) <= sizeof(integer).  Usually, then,
  93.    glueratio must be `float'.  But if you build a big TeX, you can (on
  94.    most machines) and should make it `double' to avoid loss of precision
  95.    and conversions to and from double during calculations.  (All this
  96.    also goes for Metafont.)  Furthermore, if you have enough memory, it
  97.    won't hurt to have this defined to be `double' for running the
  98.    trip/trap tests.
  99.    
  100.    This type is set automatically to `float' by configure if a small TeX
  101.    is built.  */
  102. #ifndef GLUERATIO_TYPE
  103. #define GLUERATIO_TYPE double
  104. #endif
  105. typedef GLUERATIO_TYPE glueratio;
  106. #endif /* TeX */
  107.  
  108. /* Declarations for the routines we provide ourselves.  */
  109.  
  110. extern integer zround ();
  111.  
  112.  
  113. /* File routines.  */
  114. extern boolean eof ();
  115. extern boolean eoln ();
  116. extern void errprintpascalstring ();
  117. extern void extendfilename ();
  118. extern integer inputint ();
  119. extern void main_body ();
  120. extern boolean open_input ();
  121. extern boolean open_output ();
  122. extern void fprintreal ();
  123. extern void make_c_string ();
  124. extern void make_pascal_string ();
  125. extern void makesuffixpas ();
  126. extern void null_terminate ();
  127. extern void printpascalstring ();
  128. extern void setpaths ();
  129. extern void space_terminate ();
  130. extern boolean test_eof ();
  131. extern boolean testreadaccess ();
  132. extern void uexit ();
  133. extern FILE *xfopen_pas ();
  134. extern void zinput2ints ();
  135. extern void zinput3ints ();
  136.  
  137.  
  138. /* Argument handling, etc.  */
  139. extern int argc;
  140. extern char **gargv;
  141. extern void argv ();
  142. extern char *versionstring;
  143.  
  144. #endif /* not CONFIG_H */
  145.