home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pine / pine3.07 / pico / os_unix.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-01  |  3.4 KB  |  124 lines

  1. /*
  2.  * Program:    Operating system dependent routines - Ultrix 4.1
  3.  *
  4.  * Author:    Michael Seibel
  5.  *        Networks and Distributed Computing
  6.  *        Computing & Communications
  7.  *        University of Washington
  8.  *        Administration Building, AG-44
  9.  *        Seattle, WA  98195
  10.  *        Internet: mikes@cac.washington.edu
  11.  *
  12.  * Date:    6 Jan 1992
  13.  * Last Edited:    6 Jan 1992
  14.  *
  15.  * Copyright 1991 by the University of Washington
  16.  *
  17.  *  Permission to use, copy, modify, and distribute this software and its
  18.  * documentation for any purpose and without fee is hereby granted, provided
  19.  * that the above copyright notice appears in all copies and that both the
  20.  * above copyright notice and this permission notice appear in supporting
  21.  * documentation, and that the name of the University of Washington not be
  22.  * used in advertising or publicity pertaining to distribution of the software
  23.  * without specific, written prior permission.  This software is made
  24.  * available "as is", and
  25.  * THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
  26.  * WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED
  27.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN
  28.  * NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL,
  29.  * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  30.  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT
  31.  * (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION
  32.  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  33.  *
  34.  */
  35.  
  36. #ifndef    OSDEP_H
  37. #define    OSDEP_H
  38.  
  39. #ifdef    dyn
  40. #include    <strings.h>
  41. #else
  42. #include    <string.h>
  43. #endif
  44. #undef    CTRL
  45. #include    <signal.h>
  46. #if defined (ptx) || defined (a32)
  47. /* DYNIX/ptx signal semantics are AT&T/POSIX; the sigset() call sets
  48.    the handler permanently, more like BSD signal(). */
  49. #define signal(s,f) sigset (s, f)
  50. #endif
  51.  
  52. #include    <ctype.h>
  53. #include    <sys/types.h>
  54.  
  55. #if    defined(POSIX) || defined(aix)
  56. #include    <dirent.h>
  57. #else
  58. #include    <sys/dir.h>
  59. #endif
  60. #include    <sys/ioctl.h>        /* to get at the typeahead */
  61. #include    <sys/stat.h>
  62.  
  63. /* Machine/OS definition            */
  64. #if    defined(ptx) || defined(sgi)
  65. #define TERMINFO    1               /* Use TERMINFO                  */
  66. #else
  67. #define TERMCAP        1               /* Use TERMCAP                  */
  68. #endif
  69.  
  70. /*
  71.  * File name separator, as a char and string
  72.  */
  73. #define    C_FILESEP    '/'
  74. #define    S_FILESEP    "/"
  75.  
  76. /*
  77.  * Place where mail gets delivered (for pico's new mail checking)
  78.  */
  79. #define    MAILDIR        "/usr/spool/mail"
  80.  
  81. /*
  82.  * Place to put dead/cancelled compositions
  83.  */
  84. #define MAILGRAVE       "~/mail/.dead.letter"
  85.  
  86.  
  87. /*
  88.  * What and where the tool that checks spelling is located.  If this is
  89.  * undefined, then the spelling checker is not compiled into pico.
  90.  */
  91. #define    SPELLER        "/usr/bin/spell"
  92.  
  93. /* memcpy() is no good for overlapping blocks.  If that's a problem, use
  94.    the memmove() in ../c-client */
  95. #if defined (ptx)
  96. #define bcopy(a,b,s) memcpy (b, a, s)
  97. #endif
  98. /* memmove() is a built-in for AIX 3.2 xlc. */
  99. #if defined (a32)
  100. #define bcopy(a,b,s) memmove (b, a, s)
  101. #endif
  102.  
  103.  
  104. #if    defined(dyn)
  105. #define    strchr    index            /* Dynix doesn't know about strchr */
  106. #define    strrchr    rindex
  107. #endif    /* dyn */
  108.  
  109. extern struct KBSTREE *kpadseqs;
  110. extern int kbseq();
  111.  
  112. #ifdef    termdef
  113. #if    ANSI
  114. #define NROW    25                      /* Screen size.                 */
  115. #define NCOL    80                      /* Edit if you want to.         */
  116. #endif
  117. #else
  118. #if    TERMCAP
  119. extern struct KBSTREE *kpadseqs;
  120. #endif    /* TERMCAP */
  121. #endif
  122.  
  123. #endif    /* OSDEP_H */
  124.