⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkin.c

📁 This is code tutorial for image processing include:histogram,sketon....
💻 C
字号:
/*
   checkin.c
   The Revision Control System

   Dwayne Phillips
   November 1991
*/


#include "rcs.h"


main(argc, argv)
   int argc;
   char *argv[];
{
   char   rcs_name[80], source_name[80], string[80];
   FILE   *rcs_file, *source_file, *xxx_file;
   int    leave_source = 0, one = 1, result, rev;
   struct stat rcs_file_status;

   if( (argc <  2) || (argc > 3)){
      printf("\n\n\tusage: checkin [-l] source-file\n");
      exit(1);
   }

   if(argc == 2){
      strcpy(source_name, argv[1]);
      if((source_file = fopen(source_name, "r")) == '\0'){
         printf("\ncheckin>> "
                "cannot open the source file >>%s<<",
                source_name);
         exit(-1);
      }
   }

   if(argc == 3){
      if( (strncmp("-l", argv[1], 2) == 0)){
         leave_source = 1;
         strcpy(source_name, argv[2]);
         if((source_file = fopen(source_name, "r")) == '\0'){
            printf("\ncheckin>> "
                   "cannot open the source file >>%s<<",
                   source_name);
            exit(-1);
         }
      }
      else{
         printf("\n\n\tusage: checkin [-l] source-file\n");
         exit(3);
      }
   }  /* ends if argc == 3 */

   create_rcs_file_name(source_name, rcs_name);

      /*  does an rcs file already exist? */

   result = stat(rcs_name, &rcs_file_status);

   if(result == -1){ /* rcs file does not yet exist */
      if((rcs_file = fopen(rcs_name, "w")) == '\0'){
         printf("\ncheckin>> "
                "cannot create the rcs file >>%s<<",
                rcs_name);
         exit(-1);
      }
      else{
         get_header_lines(rcs_file, one);
         copy_source_to_rcs(source_file, rcs_file);
         fclose(rcs_file);
         fclose(source_file);
         if(leave_source == 0)
            unlink(source_name);
      }  /* ends else we can create the rcs file */
   }  /* ends if result == -1 */

   if(result == 0){ /* rcs file already exists */
      if((rcs_file = fopen(rcs_name, "r")) == '\0'){
         printf("\ncheckin>> "
                "cannot open the rcs file >>%s<<",
                rcs_name);
         exit(-1);
      }
      get_latest_revision_number(rcs_file, &rev);
      rev++;
      fseek(rcs_file, 0L, SEEK_SET);

      if((xxx_file = fopen("RCS/((((", "w")) == '\0'){
         printf("\ncheckin>> "
                "cannot create the temp file ((((");
         exit(-1);
      }
      get_header_lines(xxx_file, rev);

      copy_source_to_rcs(source_file, xxx_file);
      while( fgets(string, 80, rcs_file) != '\0')
         fputs(string, xxx_file);

      fclose(xxx_file);
      fclose(rcs_file);
      fclose(source_file);
      unlink(rcs_name);
      if(leave_source == 0)
         unlink(source_name);

      sprintf(string, "copy RCS/(((( %s", rcs_name);
      replace_slash(string);
      system(string);
      unlink("RCS/((((");

   }  /* ends if result == 0 */

}  /* ends main  */




/*
   copy_source_to_rcs(FILE *source_file, FILE *rcs_file)
*/

copy_source_to_rcs(FILE *source_file, FILE *rcs_file)
{
   char line[80];
   while( fgets(line, 80, source_file) != '\0'){
    fputs(line, rcs_file);
   }
   fputs(DELIMETER, rcs_file);
}



/*
   get_latest_revision_number(FILE *rcs_file, int *rev)
*/


get_latest_revision_number(FILE *rcs_file, int *rev)
{
   char *line;
   fgets(line, 80, rcs_file);
   fgets(line, 80, rcs_file);
   *rev = atoi(line);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -