1: /*	copy.c	1.8	83/05/13	*/
   2: 
   3: #include <stdio.h>
   4: #include "cpmio.h"
   5: #include "cpmfio.h"
   6: 
   7: #define CTRL_Z  0x1a        /* CP/M end-of-file */
   8: 
   9: /*
  10:  * copy cpmfile to unix file
  11:  */
  12: 
  13: copyc(cmdline, bin)
  14:     char cmdline[];
  15: {
  16: 
  17:     char    *index(), *i;
  18: 
  19:     if ((i = index(cmdline,' ')) == NULL) {
  20:         printf("too few arguments: %s\n", cmdline);
  21:         return;
  22:     }
  23:     *i = '\0';
  24:     copy(cmdline, i+1, bin);
  25: }
  26: 
  27: copy(cpmfile, unixfile, bin)
  28:     char cpmfile[], unixfile[];
  29: {
  30: 
  31:     FILE *ufid;
  32:     char name[9], ext[4];
  33:     C_FILE *cid;
  34: 
  35:     if (!(namesep(cpmfile, name, ext)))
  36:         return;
  37:     if ((cid = c_open(name, ext, READ)) == NULL)
  38:         return;
  39: 
  40:     if ( unixfile == (char *)stdout )
  41:         ufid = stdout;
  42:     else {
  43:         if (access(unixfile,0) == 0) {
  44:             printf("%s already exists\n", unixfile);
  45:             return;
  46:         }
  47:         if ((ufid = fopen(unixfile, "w")) == NULL) {
  48:             printf("can't open %s\n", unixfile);
  49:             return;
  50:         }
  51:     }
  52:     if (bin)
  53:         copybin(cid, ufid);
  54:     else
  55:         copytext(cid, ufid);
  56:     c_close(cid);
  57: }
  58: 
  59: copytext(cid, ufid)
  60:     FILE *ufid;
  61:     C_FILE *cid;
  62: {
  63:     int c = 0;
  64: 
  65:     while (((c = c_getc(cid)) != EOF) && (c != CTRL_Z)) {
  66:         if ( c != '\r')
  67:             putc(c, ufid);
  68:     }
  69:     if (isatty(fileno(ufid)))
  70:         printf("\n");
  71:     else
  72:         fclose(ufid);
  73: }
  74: 
  75: copybin(cid, ufid)
  76:     FILE *ufid;
  77:     C_FILE *cid;
  78: {
  79:     int c = 0;
  80: 
  81:     while ((c = c_getc(cid)) != EOF)
  82:         putc(c, ufid);
  83:     fclose(ufid);
  84: }

Defined functions

copy defined in line 27; used 4 times
copybin defined in line 75; used 1 times
  • in line 53
copyc defined in line 13; used 2 times
copytext defined in line 59; used 1 times
  • in line 55

Defined macros

CTRL_Z defined in line 7; used 1 times
  • in line 65
Last modified: 1985-03-25
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1016
Valid CSS Valid XHTML 1.0 Strict