#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

#ifndef O_BINARY
#define O_BINARY 0
#endif

char *pname="merge";

usage()
{
fprintf(stderr,"\nUSAGE : %s inputBase outputFile\n",pname);
fprintf(stderr,"\n         Creates outputFile from inputBase.000, outputBase.001, etc.\n");
fprintf(stderr,"\n    Christos  Iossifides :  MERGE v1.01 for UNIX and MsDos  @ 16/05/1994\n\n                  e-mail : chiossif@atlas.central.ntua.gr\n\n");
exit(1);
}

p_open(ob, p)
char *ob;
int p;
{
char partname[1024];
sprintf(partname, "%s.%03d", ob, p);
return open(partname, O_RDONLY|O_BINARY);
}

main(argc, argv)
int argc;
char **argv;
{
char buf[16384];
int partnum, outf, f, r;

if (argc != 3) usage();

outf = open(argv[2], O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 438);
if (outf < 0) usage();

partnum = 0;
f = p_open(argv[1], partnum);
while (1)
  {
  r = read(f, buf, 16384);

  if (r <= 0)
    {
    close(f);
    partnum++;
    f = p_open(argv[1], partnum);
    if (f < 0)
      {
      close(outf);
      exit(0);
      }
    }

  write(outf, buf, r);
  }
}

