home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / WANDR330.ZIP / SRC / READ.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-27  |  1.9 KB  |  87 lines

  1. #include "wand_head.h"
  2.  
  3. extern int inform_me();
  4.  
  5. extern int edit_mode;
  6. extern char *edit_screen;
  7. extern char screen[NOOFROWS][ROWLEN+1];
  8. extern char screen_name[61];
  9.  
  10. char buffer[80];
  11.  
  12. int rscreen(num, maxmoves)
  13. int *maxmoves, num;
  14. {
  15.     int  y, numr;
  16.     FILE *fp;
  17.     char name[100];
  18.     char (*row_ptr)[ROWLEN+1] = screen;
  19.     if (!edit_mode)
  20.     sprintf(name,"%s/screen.%d",SCREENPATH,num);
  21.     else {
  22.     if (!edit_screen)
  23.         sprintf(name,"./screen");
  24.     else
  25.         sprintf(name,"%s",edit_screen);
  26.     }
  27.     fp = fopen(name,"r");
  28.     if (fp == NULL) {
  29.     if (edit_mode)
  30.         sprintf(buffer,"Cannot find file %s.",name);
  31.     else
  32.         sprintf(buffer,"File for screen %d unavailable.",num);
  33.     inform_me(buffer,0);
  34.     } else {
  35.     for (y = 0; y < NOOFROWS; y++) {
  36.         fgets(*row_ptr,ROWLEN + 2,fp);
  37.         numr = strlen( *row_ptr ) - 1;
  38.         while (numr < ROWLEN) (*row_ptr)[numr++] = ' ';
  39.         row_ptr++;
  40.     }
  41.     fgets(screen_name,61,fp);
  42.     if (fscanf(fp,"%d",maxmoves) != 1)
  43.         *maxmoves=0;
  44.     fclose(fp);
  45.     }
  46.     return (fp == NULL);
  47. }
  48.  
  49. int wscreen(num, maxmoves)
  50. int maxmoves, num;
  51. {
  52.     int  x, y;
  53.     FILE *fp;
  54.     char name[100];
  55.     char (*row_ptr)[ROWLEN+1] = screen;
  56.  
  57.     if (!edit_screen)
  58.     sprintf(name,"./screen");
  59.     else
  60.     sprintf(name,"%s",edit_screen);
  61.     fp = fopen(name,"w");
  62.     if (fp == NULL) {
  63.     sprintf(name,"/tmp/screen.%d",getpid());
  64.     fp = fopen(name,"w");
  65.     sprintf(buffer,"Written file is %s",name);
  66.     inform_me(buffer,0);
  67.     }
  68.     if (fp == NULL) {
  69.     inform_me("File for screen cannot be written.",0) ;
  70.     } else {
  71.     for (y = 0; y < NOOFROWS; y++) {
  72.         for(x = 0; x < ROWLEN; x++)
  73.         fputc(row_ptr[y][x],fp);
  74.         fputc('\n',fp);
  75.     }
  76.     if (*screen_name == '\0')
  77.         fputc('#',fp);
  78.     else
  79.         fputs(screen_name,fp);
  80.     fputc('\n',fp);
  81.     if (maxmoves != 0)
  82.         fprintf(fp,"%d\n",maxmoves);
  83.     fclose(fp);
  84.     }
  85.     return (fp == NULL);
  86. }
  87.