Hex Artifact Content

Artifact 27ec5b0708ee8b9c51038a06a773c69a2b0e54c5:


0000: 2f 2a 0a 20 2a 20 74 6b 50 6f 72 74 2e 68 20 2d  /*. * tkPort.h -
0010: 2d 0a 20 2a 0a 20 2a 09 54 68 69 73 20 66 69 6c  -. *. *.This fil
0020: 65 20 69 73 20 69 6e 63 6c 75 64 65 64 20 62 79  e is included by
0030: 20 61 6c 6c 20 6f 66 20 74 68 65 20 54 6b 20 43   all of the Tk C
0040: 20 66 69 6c 65 73 2e 20 20 49 74 20 63 6f 6e 74   files.  It cont
0050: 61 69 6e 73 0a 20 2a 09 69 6e 66 6f 72 6d 61 74  ains. *.informat
0060: 69 6f 6e 20 74 68 61 74 20 6d 61 79 20 62 65 20  ion that may be 
0070: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 64 65  configuration-de
0080: 70 65 6e 64 65 6e 74 2c 20 73 75 63 68 20 61 73  pendent, such as
0090: 0a 20 2a 09 23 69 6e 63 6c 75 64 65 73 20 66 6f  . *.#includes fo
00a0: 72 20 73 79 73 74 65 6d 20 69 6e 63 6c 75 64 65  r system include
00b0: 20 66 69 6c 65 73 20 61 6e 64 20 61 20 66 65 77   files and a few
00c0: 20 6f 74 68 65 72 20 74 68 69 6e 67 73 2e 0a 20   other things.. 
00d0: 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28  *. * Copyright (
00e0: 63 29 20 31 39 39 31 2d 31 39 39 33 20 54 68 65  c) 1991-1993 The
00f0: 20 52 65 67 65 6e 74 73 20 6f 66 20 74 68 65 20   Regents of the 
0100: 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61  University of Ca
0110: 6c 69 66 6f 72 6e 69 61 2e 0a 20 2a 20 43 6f 70  lifornia.. * Cop
0120: 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 20  yright (c) 1994 
0130: 53 75 6e 20 4d 69 63 72 6f 73 79 73 74 65 6d 73  Sun Microsystems
0140: 2c 20 49 6e 63 2e 0a 20 2a 0a 20 2a 20 53 65 65  , Inc.. *. * See
0150: 20 74 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e   the file "licen
0160: 73 65 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e  se.terms" for in
0170: 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61  formation on usa
0180: 67 65 20 61 6e 64 20 72 65 64 69 73 74 72 69 62  ge and redistrib
0190: 75 74 69 6f 6e 0a 20 2a 20 6f 66 20 74 68 69 73  ution. * of this
01a0: 20 66 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61   file, and for a
01b0: 20 44 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41   DISCLAIMER OF A
01c0: 4c 4c 20 57 41 52 52 41 4e 54 49 45 53 2e 0a 20  LL WARRANTIES.. 
01d0: 2a 0a 20 2a 20 40 28 23 29 20 24 49 64 3a 20 63  *. * @(#) $Id: c
01e0: 74 6b 2e 73 68 61 72 2c 76 20 31 2e 35 30 20 31  tk.shar,v 1.50 1
01f0: 39 39 36 2f 30 31 2f 31 35 20 31 34 3a 34 37 3a  996/01/15 14:47:
0200: 31 36 20 61 6e 64 72 65 77 6d 20 45 78 70 20 61  16 andrewm Exp a
0210: 6e 64 72 65 77 6d 20 24 0a 20 2a 2f 0a 0a 23 69  ndrewm $. */..#i
0220: 66 6e 64 65 66 20 5f 54 4b 50 4f 52 54 0a 23 64  fndef _TKPORT.#d
0230: 65 66 69 6e 65 20 5f 54 4b 50 4f 52 54 0a 0a 2f  efine _TKPORT../
0240: 2a 0a 20 2a 20 4d 61 63 72 6f 20 74 6f 20 75 73  *. * Macro to us
0250: 65 20 69 6e 73 74 65 61 64 20 6f 66 20 22 76 6f  e instead of "vo
0260: 69 64 22 20 66 6f 72 20 61 72 67 75 6d 65 6e 74  id" for argument
0270: 73 20 74 68 61 74 20 6d 75 73 74 20 68 61 76 65  s that must have
0280: 0a 20 2a 20 74 79 70 65 20 22 76 6f 69 64 20 2a  . * type "void *
0290: 22 20 69 6e 20 41 4e 53 49 20 43 3b 20 20 6d 61  " in ANSI C;  ma
02a0: 70 73 20 74 68 65 6d 20 74 6f 20 74 79 70 65 20  ps them to type 
02b0: 22 63 68 61 72 20 2a 22 20 69 6e 0a 20 2a 20 6e  "char *" in. * n
02c0: 6f 6e 2d 41 4e 53 49 20 73 79 73 74 65 6d 73 2e  on-ANSI systems.
02d0: 20 20 54 68 69 73 20 6d 61 63 72 6f 20 6d 61 79    This macro may
02e0: 20 62 65 20 75 73 65 64 20 69 6e 20 73 6f 6d 65   be used in some
02f0: 20 6f 66 20 74 68 65 20 69 6e 63 6c 75 64 65 0a   of the include.
0300: 20 2a 20 66 69 6c 65 73 20 62 65 6c 6f 77 2c 20   * files below, 
0310: 77 68 69 63 68 20 69 73 20 77 68 79 20 69 74 20  which is why it 
0320: 69 73 20 64 65 66 69 6e 65 64 20 68 65 72 65 2e  is defined here.
0330: 0a 20 2a 2f 0a 0a 23 69 66 6e 64 65 66 20 56 4f  . */..#ifndef VO
0340: 49 44 0a 23 20 20 20 69 66 64 65 66 20 5f 5f 53  ID.#   ifdef __S
0350: 54 44 43 5f 5f 0a 23 20 20 20 20 20 20 20 64 65  TDC__.#       de
0360: 66 69 6e 65 20 56 4f 49 44 20 76 6f 69 64 0a 23  fine VOID void.#
0370: 20 20 20 65 6c 73 65 0a 23 20 20 20 20 20 20 20     else.#       
0380: 64 65 66 69 6e 65 20 56 4f 49 44 20 63 68 61 72  define VOID char
0390: 0a 23 20 20 20 65 6e 64 69 66 0a 23 65 6e 64 69  .#   endif.#endi
03a0: 66 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64  f..#include <std
03b0: 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c  io.h>.#include <
03c0: 63 74 79 70 65 2e 68 3e 0a 23 69 6e 63 6c 75 64  ctype.h>.#includ
03d0: 65 20 3c 66 63 6e 74 6c 2e 68 3e 0a 23 69 66 64  e <fcntl.h>.#ifd
03e0: 65 66 20 48 41 56 45 5f 4c 49 4d 49 54 53 5f 48  ef HAVE_LIMITS_H
03f0: 0a 23 20 20 20 69 6e 63 6c 75 64 65 20 3c 6c 69  .#   include <li
0400: 6d 69 74 73 2e 68 3e 0a 23 65 6c 73 65 0a 23 20  mits.h>.#else.# 
0410: 20 20 69 6e 63 6c 75 64 65 20 22 63 6f 6d 70 61    include "compa
0420: 74 2f 6c 69 6d 69 74 73 2e 68 22 0a 23 65 6e 64  t/limits.h".#end
0430: 69 66 0a 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74  if.#include <mat
0440: 68 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 70  h.h>.#include <p
0450: 77 64 2e 68 3e 0a 23 69 66 64 65 66 20 4e 4f 5f  wd.h>.#ifdef NO_
0460: 53 54 44 4c 49 42 5f 48 0a 23 20 20 20 69 6e 63  STDLIB_H.#   inc
0470: 6c 75 64 65 20 22 63 6f 6d 70 61 74 2f 73 74 64  lude "compat/std
0480: 6c 69 62 2e 68 22 0a 23 65 6c 73 65 0a 23 20 20  lib.h".#else.#  
0490: 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62   include <stdlib
04a0: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 6e 63 6c  .h>.#endif.#incl
04b0: 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23  ude <string.h>.#
04c0: 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 79 70  include <sys/typ
04d0: 65 73 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c  es.h>.#include <
04e0: 73 79 73 2f 66 69 6c 65 2e 68 3e 0a 23 69 66 64  sys/file.h>.#ifd
04f0: 65 66 20 48 41 56 45 5f 53 59 53 5f 53 45 4c 45  ef HAVE_SYS_SELE
0500: 43 54 5f 48 0a 23 20 20 20 69 6e 63 6c 75 64 65  CT_H.#   include
0510: 20 3c 73 79 73 2f 73 65 6c 65 63 74 2e 68 3e 0a   <sys/select.h>.
0520: 23 65 6e 64 69 66 0a 23 69 6e 63 6c 75 64 65 20  #endif.#include 
0530: 3c 73 79 73 2f 73 74 61 74 2e 68 3e 0a 23 69 6e  <sys/stat.h>.#in
0540: 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 2e  clude <sys/time.
0550: 68 3e 0a 23 69 66 6e 64 65 66 20 5f 54 43 4c 0a  h>.#ifndef _TCL.
0560: 23 20 20 20 69 6e 63 6c 75 64 65 20 3c 74 63 6c  #   include <tcl
0570: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
0580: 66 20 48 41 56 45 5f 55 4e 49 53 54 44 5f 48 0a  f HAVE_UNISTD_H.
0590: 23 20 20 20 69 6e 63 6c 75 64 65 20 3c 75 6e 69  #   include <uni
05a0: 73 74 64 2e 68 3e 0a 23 65 6c 73 65 0a 23 20 20  std.h>.#else.#  
05b0: 20 69 6e 63 6c 75 64 65 20 22 63 6f 6d 70 61 74   include "compat
05c0: 2f 75 6e 69 73 74 64 2e 68 22 0a 23 65 6e 64 69  /unistd.h".#endi
05d0: 66 0a 0a 2f 2a 0a 20 2a 20 4e 6f 74 20 61 6c 6c  f../*. * Not all
05e0: 20 73 79 73 74 65 6d 73 20 64 65 63 6c 61 72 65   systems declare
05f0: 20 74 68 65 20 65 72 72 6e 6f 20 76 61 72 69 61   the errno varia
0600: 62 6c 65 20 69 6e 20 65 72 72 6e 6f 2e 68 2e 20  ble in errno.h. 
0610: 73 6f 20 74 68 69 73 0a 20 2a 20 66 69 6c 65 20  so this. * file 
0620: 64 6f 65 73 20 69 74 20 65 78 70 6c 69 63 69 74  does it explicit
0630: 6c 79 2e 0a 20 2a 2f 0a 0a 65 78 74 65 72 6e 20  ly.. */..extern 
0640: 69 6e 74 20 65 72 72 6e 6f 3b 0a 0a 2f 2a 0a 20  int errno;../*. 
0650: 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  * The following 
0660: 6d 61 63 72 6f 20 64 65 66 69 6e 65 73 20 74 68  macro defines th
0670: 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 6d 61  e type of the ma
0680: 73 6b 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 0a  sk arguments to.
0690: 20 2a 20 73 65 6c 65 63 74 3a 0a 20 2a 2f 0a 0a   * select:. */..
06a0: 23 69 66 6e 64 65 66 20 4e 4f 5f 46 44 5f 53 45  #ifndef NO_FD_SE
06b0: 54 0a 23 20 20 20 64 65 66 69 6e 65 20 53 45 4c  T.#   define SEL
06c0: 45 43 54 5f 4d 41 53 4b 20 66 64 5f 73 65 74 0a  ECT_MASK fd_set.
06d0: 23 65 6c 73 65 0a 23 20 20 20 69 66 6e 64 65 66  #else.#   ifndef
06e0: 20 5f 41 49 58 0a 09 74 79 70 65 64 65 66 20 6c   _AIX..typedef l
06f0: 6f 6e 67 20 66 64 5f 6d 61 73 6b 3b 0a 23 20 20  ong fd_mask;.#  
0700: 20 65 6e 64 69 66 0a 23 20 20 20 69 66 20 64 65   endif.#   if de
0710: 66 69 6e 65 64 28 5f 49 42 4d 52 32 29 0a 23 09  fined(_IBMR2).#.
0720: 64 65 66 69 6e 65 20 53 45 4c 45 43 54 5f 4d 41  define SELECT_MA
0730: 53 4b 20 76 6f 69 64 0a 23 20 20 20 65 6c 73 65  SK void.#   else
0740: 0a 23 09 64 65 66 69 6e 65 20 53 45 4c 45 43 54  .#.define SELECT
0750: 5f 4d 41 53 4b 20 69 6e 74 0a 23 20 20 20 65 6e  _MASK int.#   en
0760: 64 69 66 0a 23 65 6e 64 69 66 0a 0a 2f 2a 0a 20  dif.#endif../*. 
0770: 2a 20 44 65 66 69 6e 65 20 22 4e 42 42 59 22 20  * Define "NBBY" 
0780: 28 6e 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20  (number of bits 
0790: 70 65 72 20 62 79 74 65 29 20 69 66 20 69 74 27  per byte) if it'
07a0: 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 64 65  s not already de
07b0: 66 69 6e 65 64 2e 0a 20 2a 2f 0a 0a 23 69 66 6e  fined.. */..#ifn
07c0: 64 65 66 20 4e 42 42 59 0a 23 20 20 20 64 65 66  def NBBY.#   def
07d0: 69 6e 65 20 4e 42 42 59 20 38 0a 23 65 6e 64 69  ine NBBY 8.#endi
07e0: 66 0a 0a 2f 2a 0a 20 2a 20 54 68 65 20 66 6f 6c  f../*. * The fol
07f0: 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 20 64 65 66  lowing macro def
0800: 69 6e 65 73 20 74 68 65 20 6e 75 6d 62 65 72 20  ines the number 
0810: 6f 66 20 66 64 5f 6d 61 73 6b 73 20 69 6e 20 61  of fd_masks in a
0820: 6e 20 66 64 5f 73 65 74 3a 0a 20 2a 2f 0a 0a 23  n fd_set:. */..#
0830: 69 66 6e 64 65 66 20 46 44 5f 53 45 54 53 49 5a  ifndef FD_SETSIZ
0840: 45 0a 23 20 20 20 69 66 64 65 66 20 4f 50 45 4e  E.#   ifdef OPEN
0850: 5f 4d 41 58 0a 23 20 20 20 20 20 64 65 66 69 6e  _MAX.#     defin
0860: 65 20 46 44 5f 53 45 54 53 49 5a 45 20 4f 50 45  e FD_SETSIZE OPE
0870: 4e 5f 4d 41 58 0a 23 20 20 20 65 6c 73 65 0a 23  N_MAX.#   else.#
0880: 20 20 20 20 20 64 65 66 69 6e 65 20 46 44 5f 53       define FD_S
0890: 45 54 53 49 5a 45 20 32 35 36 0a 23 20 20 20 65  ETSIZE 256.#   e
08a0: 6e 64 69 66 0a 23 65 6e 64 69 66 0a 23 69 66 20  ndif.#endif.#if 
08b0: 21 64 65 66 69 6e 65 64 28 68 6f 77 6d 61 6e 79  !defined(howmany
08c0: 29 0a 23 20 20 20 64 65 66 69 6e 65 20 68 6f 77  ).#   define how
08d0: 6d 61 6e 79 28 78 2c 20 79 29 20 28 28 28 78 29  many(x, y) (((x)
08e0: 2b 28 28 79 29 2d 31 29 29 2f 28 79 29 29 0a 23  +((y)-1))/(y)).#
08f0: 65 6e 64 69 66 0a 23 69 66 6e 64 65 66 20 4e 46  endif.#ifndef NF
0900: 44 42 49 54 53 0a 23 20 20 20 64 65 66 69 6e 65  DBITS.#   define
0910: 20 4e 46 44 42 49 54 53 20 4e 42 42 59 2a 73 69   NFDBITS NBBY*si
0920: 7a 65 6f 66 28 66 64 5f 6d 61 73 6b 29 0a 23 65  zeof(fd_mask).#e
0930: 6e 64 69 66 0a 23 64 65 66 69 6e 65 20 4d 41 53  ndif.#define MAS
0940: 4b 5f 53 49 5a 45 20 68 6f 77 6d 61 6e 79 28 46  K_SIZE howmany(F
0950: 44 5f 53 45 54 53 49 5a 45 2c 20 4e 46 44 42 49  D_SETSIZE, NFDBI
0960: 54 53 29 0a 0a 2f 2a 0a 20 2a 20 54 68 65 20 66  TS)../*. * The f
0970: 6f 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 20 63  ollowing macro c
0980: 68 65 63 6b 73 20 74 6f 20 73 65 65 20 77 68 65  hecks to see whe
0990: 74 68 65 72 20 74 68 65 72 65 20 69 73 20 62 75  ther there is bu
09a0: 66 66 65 72 65 64 0a 20 2a 20 69 6e 70 75 74 20  ffered. * input 
09b0: 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 66  data available f
09c0: 6f 72 20 61 20 73 74 64 69 6f 20 46 49 4c 45 2e  or a stdio FILE.
09d0: 20 20 54 68 69 73 20 68 61 73 20 74 6f 20 62 65    This has to be
09e0: 20 64 6f 6e 65 0a 20 2a 20 69 6e 20 64 69 66 66   done. * in diff
09f0: 65 72 65 6e 74 20 77 61 79 73 20 6f 6e 20 64 69  erent ways on di
0a00: 66 66 65 72 65 6e 74 20 73 79 73 74 65 6d 73 2e  fferent systems.
0a10: 20 20 54 4b 5f 46 49 4c 45 5f 47 50 54 52 20 61    TK_FILE_GPTR a
0a20: 6e 64 0a 20 2a 20 54 4b 5f 46 49 4c 45 5f 43 4f  nd. * TK_FILE_CO
0a30: 55 4e 54 20 61 72 65 20 23 64 65 66 69 6e 65 64  UNT are #defined
0a40: 20 62 79 20 61 75 74 6f 63 6f 6e 66 2e 0a 20 2a   by autoconf.. *
0a50: 2f 0a 0a 23 69 66 64 65 66 20 54 4b 5f 46 49 4c  /..#ifdef TK_FIL
0a60: 45 5f 43 4f 55 4e 54 0a 23 20 20 20 64 65 66 69  E_COUNT.#   defi
0a70: 6e 65 20 54 4b 5f 52 45 41 44 5f 44 41 54 41 5f  ne TK_READ_DATA_
0a80: 50 45 4e 44 49 4e 47 28 66 29 20 28 28 66 29 2d  PENDING(f) ((f)-
0a90: 3e 54 4b 5f 46 49 4c 45 5f 43 4f 55 4e 54 20 3e  >TK_FILE_COUNT >
0aa0: 20 30 29 0a 23 65 6c 73 65 0a 23 20 20 20 69 66   0).#else.#   if
0ab0: 64 65 66 20 54 4b 5f 46 49 4c 45 5f 47 50 54 52  def TK_FILE_GPTR
0ac0: 0a 23 20 20 20 20 20 20 20 64 65 66 69 6e 65 20  .#       define 
0ad0: 54 4b 5f 52 45 41 44 5f 44 41 54 41 5f 50 45 4e  TK_READ_DATA_PEN
0ae0: 44 49 4e 47 28 66 29 20 28 28 66 29 2d 3e 5f 67  DING(f) ((f)->_g
0af0: 70 74 72 20 3c 20 28 66 29 2d 3e 5f 65 67 70 74  ptr < (f)->_egpt
0b00: 72 29 0a 23 20 20 20 65 6c 73 65 0a 23 20 20 20  r).#   else.#   
0b10: 20 20 20 20 69 66 64 65 66 20 54 4b 5f 46 49 4c      ifdef TK_FIL
0b20: 45 5f 52 45 41 44 5f 50 54 52 0a 23 09 20 20 20  E_READ_PTR.#.   
0b30: 20 64 65 66 69 6e 65 20 54 4b 5f 52 45 41 44 5f   define TK_READ_
0b40: 44 41 54 41 5f 50 45 4e 44 49 4e 47 28 66 29 20  DATA_PENDING(f) 
0b50: 28 28 66 29 2d 3e 5f 49 4f 5f 72 65 61 64 5f 70  ((f)->_IO_read_p
0b60: 74 72 20 21 3d 20 28 66 29 2d 3e 5f 49 4f 5f 72  tr != (f)->_IO_r
0b70: 65 61 64 5f 65 6e 64 29 0a 23 09 65 6c 73 65 0a  ead_end).#.else.
0b80: 09 20 20 20 20 2f 2a 0a 09 20 20 20 20 20 2a 20  .    /*..     * 
0b90: 44 6f 6e 27 74 20 6b 6e 6f 77 20 77 68 61 74 20  Don't know what 
0ba0: 74 6f 20 64 6f 20 66 6f 72 20 74 68 69 73 20 73  to do for this s
0bb0: 79 73 74 65 6d 3b 20 77 68 6f 65 76 65 72 20 69  ystem; whoever i
0bc0: 6e 73 74 61 6c 6c 73 0a 09 20 20 20 20 20 2a 20  nstalls..     * 
0bd0: 54 6b 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20  Tk will have to 
0be0: 77 72 69 74 65 20 61 20 66 75 6e 63 74 69 6f 6e  write a function
0bf0: 20 54 6b 52 65 61 64 44 61 74 61 50 65 6e 64 69   TkReadDataPendi
0c00: 6e 67 20 74 6f 20 64 6f 0a 09 20 20 20 20 20 2a  ng to do..     *
0c10: 20 74 68 65 20 6a 6f 62 2e 0a 09 20 20 20 20 20   the job...     
0c20: 2a 2f 0a 09 20 20 20 20 45 58 54 45 52 4e 20 69  */..    EXTERN i
0c30: 6e 74 20 54 6b 52 65 61 64 44 61 74 61 50 65 6e  nt TkReadDataPen
0c40: 64 69 6e 67 20 5f 41 4e 53 49 5f 41 52 47 53 5f  ding _ANSI_ARGS_
0c50: 28 28 46 49 4c 45 20 2a 66 29 29 3b 0a 23 20 20  ((FILE *f));.#  
0c60: 20 20 20 20 20 20 20 20 20 64 65 66 69 6e 65 20           define 
0c70: 54 4b 5f 52 45 41 44 5f 44 41 54 41 5f 50 45 4e  TK_READ_DATA_PEN
0c80: 44 49 4e 47 28 66 29 20 54 6b 52 65 61 64 44 61  DING(f) TkReadDa
0c90: 74 61 50 65 6e 64 69 6e 67 28 66 29 0a 23 09 65  taPending(f).#.e
0ca0: 6e 64 69 66 0a 23 20 20 20 65 6e 64 69 66 0a 23  ndif.#   endif.#
0cb0: 65 6e 64 69 66 0a 0a 2f 2a 0a 20 2a 20 53 75 62  endif../*. * Sub
0cc0: 73 74 69 74 75 74 65 20 54 63 6c 27 73 20 6f 77  stitute Tcl's ow
0cd0: 6e 20 76 65 72 73 69 6f 6e 73 20 66 6f 72 20 73  n versions for s
0ce0: 65 76 65 72 61 6c 20 73 79 73 74 65 6d 20 63 61  everal system ca
0cf0: 6c 6c 73 2e 20 20 54 68 65 0a 20 2a 20 54 63 6c  lls.  The. * Tcl
0d00: 20 76 65 72 73 69 6f 6e 73 20 72 65 74 72 79 20   versions retry 
0d10: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 69 66  automatically if
0d20: 20 69 6e 74 65 72 72 75 70 74 65 64 20 62 79 20   interrupted by 
0d30: 73 69 67 6e 61 6c 73 2e 0a 20 2a 2f 0a 0a 23 69  signals.. */..#i
0d40: 66 64 65 66 20 4f 4c 44 54 43 4c 0a 23 64 65 66  fdef OLDTCL.#def
0d50: 69 6e 65 20 6f 70 65 6e 28 61 2c 62 2c 63 29 20  ine open(a,b,c) 
0d60: 54 63 6c 4f 70 65 6e 28 61 2c 62 2c 63 29 0a 23  TclOpen(a,b,c).#
0d70: 64 65 66 69 6e 65 20 72 65 61 64 28 61 2c 62 2c  define read(a,b,
0d80: 63 29 20 54 63 6c 52 65 61 64 28 61 2c 62 2c 63  c) TclRead(a,b,c
0d90: 29 0a 23 65 6e 64 69 66 0a 23 64 65 66 69 6e 65  ).#endif.#define
0da0: 20 77 61 69 74 70 69 64 28 61 2c 62 2c 63 29 20   waitpid(a,b,c) 
0db0: 54 63 6c 57 61 69 74 70 69 64 28 61 2c 62 2c 63  TclWaitpid(a,b,c
0dc0: 29 0a 23 64 65 66 69 6e 65 20 77 72 69 74 65 28  ).#define write(
0dd0: 61 2c 62 2c 63 29 20 54 63 6c 57 72 69 74 65 28  a,b,c) TclWrite(
0de0: 61 2c 62 2c 63 29 0a 45 58 54 45 52 4e 20 69 6e  a,b,c).EXTERN in
0df0: 74 09 54 63 6c 4f 70 65 6e 20 5f 41 4e 53 49 5f  t.TclOpen _ANSI_
0e00: 41 52 47 53 5f 28 28 63 68 61 72 20 2a 70 61 74  ARGS_((char *pat
0e10: 68 2c 20 69 6e 74 20 6f 66 6c 61 67 2c 20 6d 6f  h, int oflag, mo
0e20: 64 65 5f 74 20 6d 6f 64 65 29 29 3b 0a 45 58 54  de_t mode));.EXT
0e30: 45 52 4e 20 69 6e 74 09 54 63 6c 52 65 61 64 20  ERN int.TclRead 
0e40: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 69 6e 74  _ANSI_ARGS_((int
0e50: 20 66 64 2c 20 56 4f 49 44 20 2a 62 75 66 2c 0a   fd, VOID *buf,.
0e60: 09 09 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69  ..    unsigned i
0e70: 6e 74 20 6e 75 6d 42 79 74 65 73 29 29 3b 0a 45  nt numBytes));.E
0e80: 58 54 45 52 4e 20 69 6e 74 09 54 63 6c 57 61 69  XTERN int.TclWai
0e90: 74 70 69 64 20 5f 41 4e 53 49 5f 41 52 47 53 5f  tpid _ANSI_ARGS_
0ea0: 28 28 70 69 64 5f 74 20 70 69 64 2c 20 69 6e 74  ((pid_t pid, int
0eb0: 20 2a 73 74 61 74 50 74 72 2c 20 69 6e 74 20 6f   *statPtr, int o
0ec0: 70 74 69 6f 6e 73 29 29 3b 0a 45 58 54 45 52 4e  ptions));.EXTERN
0ed0: 20 69 6e 74 09 54 63 6c 57 72 69 74 65 20 5f 41   int.TclWrite _A
0ee0: 4e 53 49 5f 41 52 47 53 5f 28 28 69 6e 74 20 66  NSI_ARGS_((int f
0ef0: 64 2c 20 56 4f 49 44 20 2a 62 75 66 2c 0a 09 09  d, VOID *buf,...
0f00: 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74      unsigned int
0f10: 20 6e 75 6d 42 79 74 65 73 29 29 3b 0a 0a 2f 2a   numBytes));../*
0f20: 0a 20 2a 20 49 66 20 74 68 69 73 20 73 79 73 74  . * If this syst
0f30: 65 6d 20 68 61 73 20 61 20 42 53 44 67 65 74 74  em has a BSDgett
0f40: 69 6d 65 6f 66 64 61 79 20 66 75 6e 63 74 69 6f  imeofday functio
0f50: 6e 20 28 65 2e 67 2e 20 49 52 49 58 29 20 75 73  n (e.g. IRIX) us
0f60: 65 20 69 74 0a 20 2a 20 69 6e 73 74 65 61 64 20  e it. * instead 
0f70: 6f 66 20 67 65 74 74 69 6d 65 6f 66 64 61 79 3b  of gettimeofday;
0f80: 20 74 68 65 20 67 65 74 74 69 6d 65 6f 66 64 61   the gettimeofda
0f90: 79 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 61  y function has a
0fa0: 20 64 69 66 66 65 72 65 6e 74 0a 20 2a 20 69 6e   different. * in
0fb0: 74 65 72 66 61 63 65 20 74 68 61 6e 20 74 68 65  terface than the
0fc0: 20 42 53 44 20 6f 6e 65 20 74 68 61 74 20 74 68   BSD one that th
0fd0: 69 73 20 63 6f 64 65 20 65 78 70 65 63 74 73 2e  is code expects.
0fe0: 0a 20 2a 2f 0a 0a 23 69 66 64 65 66 20 48 41 56  . */..#ifdef HAV
0ff0: 45 5f 42 53 44 47 45 54 54 49 4d 45 4f 46 44 41  E_BSDGETTIMEOFDA
1000: 59 0a 23 20 20 20 20 64 65 66 69 6e 65 20 67 65  Y.#    define ge
1010: 74 74 69 6d 65 6f 66 64 61 79 20 42 53 44 67 65  ttimeofday BSDge
1020: 74 74 69 6d 65 6f 66 64 61 79 0a 23 65 6e 64 69  ttimeofday.#endi
1030: 66 0a 23 69 66 64 65 66 20 47 45 54 54 4f 44 5f  f.#ifdef GETTOD_
1040: 4e 4f 54 5f 44 45 43 4c 41 52 45 44 0a 45 58 54  NOT_DECLARED.EXT
1050: 45 52 4e 20 69 6e 74 20 20 20 20 20 20 20 20 20  ERN int         
1060: 20 20 20 67 65 74 74 69 6d 65 6f 66 64 61 79 20     gettimeofday 
1070: 5f 41 4e 53 49 5f 41 52 47 53 5f 28 28 73 74 72  _ANSI_ARGS_((str
1080: 75 63 74 20 74 69 6d 65 76 61 6c 20 2a 74 70 2c  uct timeval *tp,
1090: 0a 09 09 09 73 74 72 75 63 74 20 74 69 6d 65 7a  ....struct timez
10a0: 6f 6e 65 20 2a 74 7a 70 29 29 3b 0a 23 65 6e 64  one *tzp));.#end
10b0: 69 66 0a 0a 2f 2a 0a 20 2a 20 44 65 63 6c 61 72  if../*. * Declar
10c0: 61 74 69 6f 6e 73 20 66 6f 72 20 76 61 72 69 6f  ations for vario
10d0: 75 73 20 6c 69 62 72 61 72 79 20 70 72 6f 63 65  us library proce
10e0: 64 75 72 65 73 20 74 68 61 74 20 6d 61 79 20 6e  dures that may n
10f0: 6f 74 20 62 65 20 64 65 63 6c 61 72 65 64 0a 20  ot be declared. 
1100: 2a 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 68  * in any other h
1110: 65 61 64 65 72 20 66 69 6c 65 2e 0a 20 2a 2f 0a  eader file.. */.
1120: 0a 2f 2f 65 78 74 65 72 6e 20 76 6f 69 64 09 09  .//extern void..
1130: 70 61 6e 69 63 28 29 3b 0a 0a 23 65 6e 64 69 66  panic();..#endif
1140: 20 2f 2a 20 5f 54 4b 50 4f 52 54 20 2a 2f 0a      /* _TKPORT */.