home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / LATTIC_3.LZH / SRC / _MAIN.C < prev    next >
C/C++ Source or Header  |  1990-09-22  |  2KB  |  86 lines

  1. /*
  2.  * _main.c - start program running under Lattice C 5 ST
  3.  *
  4.  * Started 28/8/89 Alex G. Kiernan, based on Lattice source
  5.  *
  6.  * Unlike 3.04 this module no longer performs command line parsing and
  7.  * I/O redirection, which is done by _setargv. This is to allow support
  8.  * for the extended command line. The TINY macro has also disappeared,
  9.  * to create a similar effect, declare your main as _main.
  10.  *
  11.  * Copyright (c) 1989 HiSoft and Lattice, Inc.
  12.  */
  13.  
  14. #include <stdio.h>
  15. #include <fcntl.h>
  16. #include <ios1.h>
  17. #include <stdlib.h>
  18. #include <dos.h>
  19. #include <osbind.h>
  20.  
  21. #define    prn 3
  22. #define    aux 4
  23.  
  24. extern char **environ;
  25.  
  26. /* introduce prototype here to force regargs */
  27. int main(int, char *[],char **);
  28.  
  29. int _main(int argc, char *argv[])
  30. {
  31.     int i;
  32.     
  33.     _ufbs[0].ufbfh = 0;
  34.     _ufbs[0].ufbflg = UFB_RA;
  35.     stdin->_file = 0;
  36.     stdin->_flag = _IOREAD;
  37.     if (_disatty(0))
  38.         stdin->_flag |= _IOLBF;
  39.         
  40.     _ufbs[1].ufbfh = 1;
  41.     _ufbs[1].ufbflg = UFB_WA;
  42.     stdout->_file = 1;
  43.     stdout->_flag = _IOWRT;
  44.     stdout->_flag |= _IONBF;
  45.         
  46.     stderr->_file = 2;
  47.     _ufbs[2].ufbfh = 2;
  48.     if (_disatty(2))
  49.     {
  50.         stderr->_flag |= _IORW | _IONBF;
  51.         _ufbs[2].ufbflg = UFB_RA | UFB_WA;
  52.     }
  53.     else
  54.     {
  55.         stderr->_flag = _IOWRT | _IOLBF;
  56.         _ufbs[2].ufbflg = UFB_WA;
  57.     }
  58.  
  59.     for (i=0;i<=2;i++)
  60.         if (!_disatty(i))
  61.             _ufbs[i].ufbfh |= UFB_FH;
  62.  
  63.     Fforce(aux,-2);        /* create an aux: */
  64.     
  65.     _ufbs[3].ufbfh = aux;
  66.     _ufbs[3].ufbflg = UFB_RA | UFB_WA;
  67.     _ufbs[4].ufbfh = prn;
  68.     _ufbs[4].ufbflg = UFB_WA;
  69.     stdaux->_file = 3;
  70.     stdaux->_flag = _IORW | _IOLBF;
  71.     stdprt->_file = 4;
  72.     stdprt->_flag = _IOWRT | _IOLBF;
  73.  
  74.     if(_fmode)
  75.     {
  76.         _ufbs[0].ufbflg |= O_RAW;
  77.         _ufbs[1].ufbflg |= O_RAW;
  78.         _ufbs[2].ufbflg |= O_RAW;
  79.         _ufbs[3].ufbflg |= O_RAW;
  80.         _ufbs[4].ufbflg |= O_RAW;
  81.     }
  82.  
  83.     exit(main(argc,argv,environ));
  84.     return 0;
  85. }
  86.