Changeset 1183 for trunk/src/kmk/kmkbuiltin/cmp.c
- Timestamp:
- Oct 6, 2007, 12:16:46 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kmkbuiltin/cmp.c
r1117 r1183 63 63 # define lseek _lseeki64 64 64 # endif 65 #endif 65 #endif 66 66 #include <locale.h> 67 67 68 68 #ifndef O_BINARY 69 69 # define O_BINARY 0 70 #endif 70 #endif 71 71 72 72 /*#include "extern.h"*/ 73 73 74 #include "kmkbuiltin.h" 75 76 74 77 static int lflag, sflag; 78 79 static struct option long_options[] = 80 { 81 { "help", no_argument, 0, 261 }, 82 { "version", no_argument, 0, 262 }, 83 { 0, 0, 0, 0 }, 84 }; 85 75 86 76 87 /* this is kind of ugly but its the simplest way to avoid namespace mess. */ … … 81 92 #else 82 93 #include "cmp_regular_std.c" 83 #endif 84 85 static int usage( void);94 #endif 95 96 static int usage(FILE *); 86 97 87 98 int 88 kmk_builtin_cmp(int argc, char *argv[] )99 kmk_builtin_cmp(int argc, char *argv[], char **envp) 89 100 { 90 101 struct stat sb1, sb2; … … 107 118 optind = 0; /* init */ 108 119 109 while ((ch = getopt (argc, argv, "ls")) != -1)120 while ((ch = getopt_long(argc, argv, "ls", long_options, NULL)) != -1) 110 121 switch (ch) { 111 122 case 'l': /* print all differences */ … … 115 126 sflag = 1; 116 127 break; 128 case 261: 129 usage(stdout); 130 return 0; 131 case 262: 132 return kbuild_version(argv[0]); 117 133 case '?': 118 134 default: 119 return usage( );135 return usage(stderr); 120 136 } 121 137 argv += optind; … … 126 142 127 143 if (argc < 2 || argc > 4) 128 return usage( );144 return usage(stderr); 129 145 130 146 /* Backward compatibility -- handle "-" meaning stdin. */ … … 161 177 skip1 = strtoll(argv[2], &ep, 0); 162 178 if (errno || ep == argv[2]) { 163 rc = usage( );179 rc = usage(stderr); 164 180 goto l_exit; 165 181 } … … 168 184 skip2 = strtoll(argv[3], &ep, 0); 169 185 if (errno || ep == argv[3]) { 170 rc = usage( );186 rc = usage(stderr); 171 187 goto l_exit; 172 188 } … … 203 219 204 220 static int 205 usage( void)221 usage(FILE *fp) 206 222 { 207 208 (void)fprintf(stderr, 209 "usage: cmp [-l | -s] file1 file2 [skip1 [skip2]]\n"); 223 fprintf(fp, "usage: %s [-l | -s] file1 file2 [skip1 [skip2]]\n" 224 " or: %s --help\n" 225 " or: %s --version\n", 226 g_progname, g_progname, g_progname); 210 227 return(ERR_EXIT); 211 228 }
Note:
See TracChangeset
for help on using the changeset viewer.