home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / packer / zoo / turboc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-25  |  1.6 KB  |  74 lines

  1. /* @(#) turboc.c 1.2 87/06/21 16:08:54 */
  2.  
  3. int _stklen = 30000;        /* stack size in bytes */
  4. _setenvp() {}           /* don't initialize environment pointer etc. */
  5. #include <fcntl.h>
  6.  
  7. /* following not needed any more since zoocreate() is fixed in portable.c */
  8. /* unsigned _fmode = O_BINARY; */
  9.  
  10. #ifdef LINT_ARGS
  11. void dosname (char *, char *);
  12. char *strcpy (char *, char *);
  13. #else
  14. void dosname ();
  15. char *strcpy ();
  16. #endif
  17.  
  18. /****************
  19. function trunc() truncates a file -- ok to be a no-op
  20. */
  21.  
  22. int trunc (handle)
  23. int handle;
  24. {
  25.     /* avoid compiler warning about unused argument */
  26.     return (handle - handle);
  27. }
  28.  
  29. /****************
  30. Function fixfname() converts the supplied filename to a syntax
  31. legal for the host system.  It is used during extraction.
  32. */
  33.  
  34. char *fixfname(fname)
  35. char *fname;
  36. {
  37.     char tmpname[PATHSIZE];
  38.     dosname (nameptr(fname), tmpname);
  39.     strcpy(fname,tmpname);
  40.     return(fname);
  41. }
  42.  
  43. #include <signal.h>
  44. #include "intdos.h"
  45.  
  46. static int set_break (int flag)
  47. {
  48.     int retval;
  49.     union REGS regs;
  50.     regs.x.ax = 0x3300;                /* get ctrl-break flag */
  51.     intdos (®s, ®s);
  52.     retval = regs.h.dl;                /* retval is old value of setting */
  53.     regs.x.ax = 0x3301;                /* set ctrl-break flag */
  54.     regs.h.dl = flag;                /* status to set to */
  55.     intdos (®s, ®s);
  56.     return (retval);
  57. }
  58.  
  59. static int break_flag;
  60.  
  61. int zooexit (int status)
  62. {
  63.     set_break (break_flag);            /* restore control_break setting */
  64.     exit (status);
  65. }
  66.  
  67. void gentab (void);
  68.  
  69. void spec_init(void)
  70. {
  71.     break_flag = set_break (0);
  72.     signal (SIGINT, zooexit);        /* install our own control-C handler */
  73. }
  74.