| 39 | |
| 40 | |
| 41 | int |
| 42 | main(int argc, char **argv1) |
| 43 | { |
| 44 | TSK_IMG_TYPE_ENUM imgtype = TSK_IMG_TYPE_DETECT; |
| 45 | |
| 46 | int ch; |
| 47 | TSK_TCHAR **argv; |
| 48 | unsigned int ssize = 0; |
| 49 | TSK_TCHAR *cp; |
| 50 | TSK_TCHAR *database = NULL; |
| 51 | |
| 52 | bool blkMapFlag = true; // true if we are going to write the block map |
| 53 | bool createDbFlag = true; // true if we are going to create a new database |
| 54 | bool calcHash = false; |
| 55 | |
| 56 | #ifdef TSK_WIN32 |
| 57 | // On Windows, get the wide arguments (mingw doesn't support wmain) |
| 58 | argv = CommandLineToArgvW(GetCommandLineW(), &argc); |
| 59 | if (argv == NULL) { |
| 60 | fprintf(stderr, "Error getting wide arguments\n"); |
| 61 | exit(1); |
| 62 | } |
| 63 | #else |
| 64 | argv = (TSK_TCHAR **) argv1; |
| 65 | #endif |
| 66 | |
| 67 | progname = argv[0]; |
| 68 | setlocale(LC_ALL, ""); |
| 69 | |
| 70 | while ((ch = GETOPT(argc, argv, _TSK_T("ab:d:hi:kvV"))) > 0) { |
| 71 | switch (ch) { |
| 72 | case _TSK_T('?'): |
| 73 | default: |
| 74 | TFPRINTF(stderr, _TSK_T("Invalid argument: %s\n"), |
| 75 | argv[OPTIND]); |
| 76 | usage(); |
| 77 | |
| 78 | case _TSK_T('a'): |
| 79 | createDbFlag = false; |
| 80 | break; |
| 81 | |
| 82 | case _TSK_T('b'): |
| 83 | ssize = (unsigned int) TSTRTOUL(OPTARG, &cp, 0); |
| 84 | if (*cp || *cp == *OPTARG || ssize < 1) { |
| 85 | TFPRINTF(stderr, |
| 86 | _TSK_T |
| 87 | ("invalid argument: sector size must be positive: %s\n"), |
| 88 | OPTARG); |
| 89 | usage(); |
| 90 | } |
| 91 | break; |
| 92 | |
| 93 | case _TSK_T('i'): |
| 94 | if (TSTRCMP(OPTARG, _TSK_T("list")) == 0) { |
| 95 | tsk_img_type_print(stderr); |
| 96 | exit(1); |
| 97 | } |
| 98 | imgtype = tsk_img_type_toid(OPTARG); |
nothing calls this directly
no test coverage detected