Diff for /embedtools/src/direr.c between versions 1.3.4.3 and 1.3.4.4

version 1.3.4.3, 2014/01/30 01:03:22 version 1.3.4.4, 2014/02/04 16:52:32
Line 54  Usage() Line 54  Usage()
         printf( "-= Direr =- Tool for compare directories by checksum\n"          printf( "-= Direr =- Tool for compare directories by checksum\n"
                 "=== %s === %s@%s ===\n\n"                  "=== %s === %s@%s ===\n\n"
                 "  Syntax: direr [options] <dir> [cmp_dir]\n\n"                  "  Syntax: direr [options] <dir> [cmp_dir]\n\n"
                   "\t-q\t\t\tQuiet mode\n"
                 "\t-s <cksum>\t\tCompare dir with this checksum ...\n"                  "\t-s <cksum>\t\tCompare dir with this checksum ...\n"
                 "\n", compiled, compiledby, compilehost);                  "\n", compiled, compiledby, compilehost);
 }  }
Line 61  Usage() Line 62  Usage()
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
        u_char *md[2], mode = 0;        u_char *md[2], mode = 0, quiet = 0;
         char szCmp[MAXPATHLEN], *str[2], ch;          char szCmp[MAXPATHLEN], *str[2], ch;
         int ret = 0;          int ret = 0;
        ait_val_t v;        ait_val_t v = AIT_VAL_INITIALIZER(v);
   
         memset(md, 0, sizeof md);          memset(md, 0, sizeof md);
         memset(str, 0, sizeof str);          memset(str, 0, sizeof str);
         memset(szCmp, 0, MAXPATHLEN);          memset(szCmp, 0, MAXPATHLEN);
        while ((ch = getopt(argc, argv, "hs:")) != -1)        while ((ch = getopt(argc, argv, "hqs:")) != -1)
                 switch (ch) {                  switch (ch) {
                         case 's':                          case 's':
                                 str[1] = strdup(optarg);                                  str[1] = strdup(optarg);
                                 mode = 1;                                  mode = 1;
                                 break;                                  break;
                           case 'q':
                                   quiet = 1;
                                   break;
                         case 'h':                          case 'h':
                         default:                          default:
                                 Usage();                                  Usage();
Line 93  main(int argc, char **argv) Line 97  main(int argc, char **argv)
         }          }
   
         if (sync_dirChkSum(argv[0], &md[0]) == -1) {          if (sync_dirChkSum(argv[0], &md[0]) == -1) {
                printf("Error:: %s(%d) #%d - %s\n", __func__, __LINE__, errno, strerror(errno));                ELIBERR(sync);
                 return 1;                  return 1;
         }          }
         AIT_SET_BUF(&v, md[0], MD5_DIGEST_LENGTH);          AIT_SET_BUF(&v, md[0], MD5_DIGEST_LENGTH);
         str[0] = str_Dig2Hex(&v);          str[0] = str_Dig2Hex(&v);
         AIT_FREE_VAL(&v);          AIT_FREE_VAL(&v);
         if (!str[0]) {          if (!str[0]) {
                free(md[0]);                e_free(md[0]);
                 return 1;                  return 1;
         }          }
        printf("1.Directory '%s': %s\n", argv[0], str[0]);        if (!quiet)
                 printf("1.Directory '%s': %s\n", argv[0], str[0]);
   
         if (mode & 1 && *str[1]) {          if (mode & 1 && *str[1]) {
                 ret |= !strcmp((char*) str[0], (char*) str[1]) << 1;                  ret |= !strcmp((char*) str[0], (char*) str[1]) << 1;
                printf("Result checksum:: %s %s %s\n\n", str[0], ret & 2 ? "==" : "!=", str[1]);                if (!quiet)
                free(str[1]);                        printf("Result checksum:: %s %s %s\n\n", str[0], 
                                         ret & 2 ? "==" : "!=", str[1]);
                 e_free(str[1]);
         }          }
   
         if (mode & 2 && *szCmp) {          if (mode & 2 && *szCmp) {
                 if (sync_dirChkSum(szCmp, &md[1]) == -1) {                  if (sync_dirChkSum(szCmp, &md[1]) == -1) {
                        printf("Error:: %s(%d) #%d - %s\n", __func__, __LINE__, errno, strerror(errno));                        ELIBERR(sync);
                         return 1;                          return 1;
                 }                  }
                 AIT_SET_BUF(&v, md[1], MD5_DIGEST_LENGTH);                  AIT_SET_BUF(&v, md[1], MD5_DIGEST_LENGTH);
                 str[1] = str_Dig2Hex(&v);                  str[1] = str_Dig2Hex(&v);
                 AIT_FREE_VAL(&v);                  AIT_FREE_VAL(&v);
                 if (!str[1]) {                  if (!str[1]) {
                        free(md[0]);                        e_free(md[0]);
                        free(str[0]);                        e_free(str[0]);
                        free(md[1]);                        e_free(md[1]);
                         return 1;                          return 1;
                 }                  }
                printf("2.Directory '%s': %s\n", szCmp, str[1]);                if (!quiet)
                         printf("2.Directory '%s': %s\n", szCmp, str[1]);
   
                 ret |= (!strcmp((char*) str[0], (char*) str[1]) << 2);                  ret |= (!strcmp((char*) str[0], (char*) str[1]) << 2);
                printf("Result directory:: %s %s %s\n\n", argv[0], ret & 4 ? "==" : "!=", szCmp);                if (!quiet)
                        printf("Result directory:: %s %s %s\n\n", argv[0], 
                if (str[1])                                        ret & 4 ? "==" : "!=", szCmp);
                        free(str[1]);                e_free(str[1]);
                if (md[1])                e_free(md[1]);
                        free(md[1]); 
         }          }
   
        if (str[0])        e_free(str[0]);
                free(str[0]);        e_free(md[0]);
        if (md[0]) 
                free(md[0]); 
         return ret;          return ret;
 }  }

Removed from v.1.3.4.3  
changed lines
  Added in v.1.3.4.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>