catresp.c
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:1k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. /*
  2. CW : Character Windows
  3. catresp.c : helper program for New Make
  4. Flags "-string" => break lines using string
  5. 1st parm = file to concatenate to
  6. 2nd parm = "@tmp" -- response file containing file name list
  7. ConCatenate response file to end of specified file
  8. */
  9. #include <stdio.h>
  10. #include <fcntl.h>
  11. main(argc, argv)
  12. int argc;
  13. char *argv[];
  14. {
  15. FILE * pfileList;
  16. FILE * pfileOut;
  17. int ch; /* char + EOF */
  18. int cchLine;
  19. char * szBreak = NULL;
  20. if (argc == 4 && argv[1][0] == '-')
  21. {
  22. szBreak = &argv[1][1];
  23. argv++; argc--;
  24. }
  25. if (argc != 3 || argv[2][0] != '@')
  26. {
  27. printf("usage: catresp [-string] <out_file> @<response_file>n");
  28. exit(1);
  29. }
  30. if ((pfileList = fopen(argv[2]+1, "rt")) == NULL)
  31. {
  32. printf("catresp: can't open response filen");
  33. exit(1);
  34. }
  35. if ((pfileOut = fopen(argv[1], "at")) == NULL)
  36. {
  37. printf("catresp: can't open output filen");
  38. exit(1);
  39. }
  40. cchLine = 0;
  41. while ((ch = getc(pfileList)) != EOF)
  42. {
  43. if (ch == 'n')
  44. cchLine = 0;
  45. else
  46. cchLine++;
  47. // optional break lines
  48. if (szBreak != NULL && ch == ' ' && cchLine > 70)
  49. {
  50. /* end that line, start another */
  51. fputs(szBreak, pfileOut);
  52. ch = 'n';
  53. cchLine = 0;
  54. }
  55. putc(ch, pfileOut);
  56. }
  57. exit(0);
  58. }