Changeset 3192 for trunk/src/kmk/kmkbuiltin/cmp.c
- Timestamp:
- Mar 26, 2018, 10:25:56 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kmkbuiltin/cmp.c
r3092 r3192 64 64 65 65 66 static int usage( FILE *);66 static int usage(PKMKBUILTINCTX pCtx, int is_err); 67 67 68 68 int 69 kmk_builtin_cmp(int argc, char * argv[], char **envp)69 kmk_builtin_cmp(int argc, char **argv, char **envp, PKMKBUILTINCTX pCtx) 70 70 { 71 71 off_t skip1 = 0, skip2 = 0; … … 74 74 char *file1, *file2; 75 75 76 #ifdef kmk_builtin_cmp76 #ifdef KMK_BUILTIN_STANDALONE 77 77 setlocale(LC_ALL, ""); 78 78 #endif 79 79 80 80 /* reset getopt and set progname. */ 81 g_progname = argv[0];82 81 opterr = 1; 83 82 optarg = NULL; … … 96 95 break; 97 96 case 261: 98 usage( stdout);97 usage(pCtx, 0); 99 98 return 0; 100 99 case 262: … … 102 101 case '?': 103 102 default: 104 return usage( stderr);103 return usage(pCtx, 1); 105 104 } 106 105 } … … 109 108 110 109 if (argc < 2 || argc > 4) 111 return usage( stderr);110 return usage(pCtx, 1); 112 111 113 112 file1 = argv[0]; … … 121 120 skip1 = strtoll(argv[2], &ep, 0); 122 121 if (errno || ep == argv[2]) 123 return errx( ERR_EXIT, "strtoll(%s,,) failed", argv[2]);122 return errx(pCtx, ERR_EXIT, "strtoll(%s,,) failed", argv[2]); 124 123 125 124 if (argc == 4) … … 127 126 skip2 = strtoll(argv[3], &ep, 0); 128 127 if (errno || ep == argv[3]) 129 return errx( ERR_EXIT, "strtoll(%s,,) failed", argv[3]);128 return errx(pCtx, ERR_EXIT, "strtoll(%s,,) failed", argv[3]); 130 129 } 131 130 } 132 131 133 return cmp_file_and_file_ex( file1, skip1, file2, skip2, sflag, lflag, 0);132 return cmp_file_and_file_ex(pCtx, file1, skip1, file2, skip2, sflag, lflag, 0); 134 133 } 135 134 136 135 static int 137 usage( FILE *fp)136 usage(PKMKBUILTINCTX pCtx, int is_err) 138 137 { 139 fprintf(fp, "usage: %s [-l | -s] file1 file2 [skip1 [skip2]]\n" 140 " or: %s --help\n" 141 " or: %s --version\n", 142 g_progname, g_progname, g_progname); 138 kmk_builtin_ctx_printf(pCtx, is_err, 139 "usage: %s [-l | -s] file1 file2 [skip1 [skip2]]\n" 140 " or: %s --help\n" 141 " or: %s --version\n", 142 pCtx->pszProgName, pCtx->pszProgName, pCtx->pszProgName); 143 143 return ERR_EXIT; 144 144 } 145 146 #ifdef KMK_BUILTIN_STANDALONE 147 int main(int argc, char **argv, char **envp) 148 { 149 KMKBUILTINCTX Ctx = { "kmk_cmp", NULL }; 150 return kmk_builtin_cmp(argc, argv, envp, &Ctx); 151 } 152 #endif 153
Note:
See TracChangeset
for help on using the changeset viewer.