Changeset 1183 in kBuild
- Timestamp:
- Oct 5, 2007 10:16:46 PM (17 years ago)
- Location:
- trunk/src/kmk
- Files:
-
- 1 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/Makefile.am
r1171 r1183 72 72 kmkbuiltin/strmode.c \ 73 73 kmkbuiltin/strlcpy.c \ 74 kmkbuiltin/osdep.c 74 kmkbuiltin/osdep.c \ 75 kmkbuiltin/version.c 75 76 76 77 … … 127 128 -DKBUILD_VERSION_MAJOR=0 \ 128 129 -DKBUILD_VERSION_MINOR=1 \ 129 -DKBUILD_VERSION_PATCH= 0\130 -DKBUILD_VERSION_PATCH=1 \ 130 131 \ 131 132 -DCONFIG_WITH_KMK_BUILTIN \ -
trunk/src/kmk/Makefile.kmk
r1171 r1183 51 51 kmkbuiltin/strmode.c \ 52 52 kmkbuiltin/strlcpy.c \ 53 kmkbuiltin/version.c \ 53 54 getopt.c \ 54 55 getopt1.c \ -
trunk/src/kmk/kmkbuiltin.h
r1162 r1183 43 43 extern int kmk_builtin_kDepIDB(int argc, char **argv, char **envp); 44 44 45 extern int kbuild_version(const char *argv0); 46 -
trunk/src/kmk/kmkbuiltin/append.c
r820 r1183 39 39 * Prints the usage and return 1. 40 40 */ 41 static int usage( void)41 static int usage(FILE *pf) 42 42 { 43 fprintf(stderr, "usage: append [-nv] file [string ...]\n"); 43 fprintf(pf, 44 "usage: %s [-nv] file [string ...]\n" 45 " or: %s --version\n" 46 " or: %s --help\n", 47 g_progname, g_progname, g_progname); 44 48 return 1; 45 49 } … … 68 72 && argv[i][0] == '-' 69 73 && argv[i][1] != '\0' /* '-' is a file */ 70 && strchr(" nv", argv[i][1]) /* valid option char */74 && strchr("-nv", argv[i][1]) /* valid option char */ 71 75 ) 72 76 { 73 77 char *psz = &argv[i][1]; 74 do78 if (*psz != '-') 75 79 { 76 switch (*psz)80 do 77 81 { 78 case 'n': 79 fNewLine = 1; 80 break; 81 case 'v': 82 switch (*psz) 83 { 84 case 'n': 85 fNewLine = 1; 86 break; 87 case 'v': 82 88 #ifndef kmk_builtin_append 83 fVariables = 1;84 break;89 fVariables = 1; 90 break; 85 91 #else 86 errx(1, "Option '-v' isn't supported in external mode.");87 return usage();92 errx(1, "Option '-v' isn't supported in external mode."); 93 return usage(stderr); 88 94 #endif 89 default: 90 errx(1, "Invalid option '%c'! (%s)", *psz, argv[i]); 91 return usage(); 92 } 93 } while (*++psz); 95 default: 96 errx(1, "Invalid option '%c'! (%s)", *psz, argv[i]); 97 return usage(stderr); 98 } 99 } while (*++psz); 100 } 101 else if (!strcmp(psz, "-help")) 102 { 103 usage(stdout); 104 return 0; 105 } 106 else if (!strcmp(psz, "-version")) 107 return kbuild_version(argv[0]); 108 else 109 break; 94 110 i++; 95 111 } … … 101 117 { 102 118 errx(1, "missing filename!"); 103 return usage( );119 return usage(stderr); 104 120 } 105 121 pFile = fopen(argv[i], "a"); -
trunk/src/kmk/kmkbuiltin/cat.c
r942 r1183 78 78 #endif 79 79 80 #include "kmkbuiltin.h" 81 82 80 83 int bflag, eflag, nflag, sflag, tflag, vflag; 81 84 /*int rval;*/ 82 85 const char *filename; 83 86 84 static int usage(void); 87 static struct option long_options[] = 88 { 89 { "help", no_argument, 0, 261 }, 90 { "version", no_argument, 0, 262 }, 91 { 0, 0, 0, 0 }, 92 }; 93 94 95 static int usage(FILE *); 85 96 static int scanfiles(char *argv[], int cooked); 86 97 static int cook_cat(FILE *); … … 92 103 93 104 int 94 kmk_builtin_cat(int argc, char *argv[] )105 kmk_builtin_cat(int argc, char *argv[], char **envp) 95 106 { 96 107 int ch, rc; … … 111 122 #endif 112 123 113 while ((ch = getopt (argc, argv, "benstuv")) != -1)124 while ((ch = getopt_long(argc, argv, "benstuv", long_options, NULL)) != -1) 114 125 switch (ch) { 115 126 case 'b': … … 134 145 vflag = 1; 135 146 break; 147 case 261: 148 usage(stdout); 149 return 0; 150 case 262: 151 return kbuild_version(argv[0]); 136 152 default: 137 return usage( );153 return usage(stderr); 138 154 } 139 155 argv += optind; … … 151 167 152 168 static int 153 usage(void) 154 { 155 fprintf(stderr, "usage: cat [-benstuv] [file ...]\n"); 169 usage(FILE *fp) 170 { 171 fprintf(fp, "usage: %s [-benstuv] [file ...]\n" 172 " or: %s --help\n" 173 " or: %s --version\n", 174 g_progname, g_progname, g_progname); 156 175 return 1; 157 176 } -
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 } -
trunk/src/kmk/kmkbuiltin/cp.c
r1141 r1183 79 79 #include "cp_extern.h" 80 80 81 #include "kmkbuiltin.h" 82 83 81 84 #ifndef S_IFWHT 82 85 #define S_IFWHT 0 … … 115 118 enum op { FILE_TO_FILE, FILE_TO_DIR, DIR_TO_DNE }; 116 119 120 static struct option long_options[] = 121 { 122 { "help", no_argument, 0, 261 }, 123 { "version", no_argument, 0, 262 }, 124 { 0, 0, 0, 0 }, 125 }; 126 127 117 128 static int copy(char *[], enum op, int); 118 129 static int mastercmp(const FTSENT * const *, const FTSENT * const *); … … 120 131 static void siginfo(int __unused); 121 132 #endif 133 static int usage(FILE *); 122 134 123 135 int 124 kmk_builtin_cp(int argc, char *argv[] )136 kmk_builtin_cp(int argc, char *argv[], char **envp) 125 137 { 126 138 struct stat to_stat, tmp_stat; … … 145 157 146 158 Hflag = Lflag = Pflag = 0; 147 while ((ch = getopt (argc, argv, "HLPRfinprv")) != -1)159 while ((ch = getopt_long(argc, argv, "HLPRfinprv", long_options, NULL)) != -1) 148 160 switch (ch) { 149 161 case 'H': … … 191 203 vflag = 1; 192 204 break; 205 case 261: 206 usage(stdout); 207 return 0; 208 case 262: 209 return kbuild_version(argv[0]); 193 210 default: 194 return usage( );211 return usage(stderr); 195 212 } 196 213 argc -= optind; … … 198 215 199 216 if (argc < 2) 200 return usage( );217 return usage(stderr); 201 218 202 219 fts_options = FTS_NOCHDIR | FTS_PHYSICAL; … … 270 287 */ 271 288 if (argc > 1) 272 return usage( );289 return usage(stderr); 273 290 /* 274 291 * Need to detect the case: … … 573 590 } 574 591 #endif 592 593 594 static int 595 usage(FILE *fp) 596 { 597 fprintf(fp, "usage: %s [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src target\n" 598 " or: %s [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src1 ... srcN directory\n" 599 " or: %s --help\n" 600 " or: %s --version\n", 601 g_progname, g_progname, g_progname, g_progname); 602 return EX_USAGE; 603 } -
trunk/src/kmk/kmkbuiltin/cp_extern.h
r370 r1183 58 58 int copy_special(struct stat *, int); 59 59 int setfile(struct stat *, int); 60 int usage(void); -
trunk/src/kmk/kmkbuiltin/cp_utils.c
r809 r1183 355 355 } 356 356 357 int358 usage(void)359 {360 361 (void)fprintf(stderr, "%s\n%s\n",362 "usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src target",363 " cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src1 ... srcN directory");364 return EX_USAGE;365 } -
trunk/src/kmk/kmkbuiltin/install.c
r942 r1183 81 81 #endif 82 82 83 #include "kmkbuiltin.h" 84 85 83 86 extern void * setmode(const char *p); 84 87 extern mode_t getmode(const void *bbox, mode_t omode); … … 117 120 static mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; 118 121 static const char *suffix = BACKUP_SUFFIX; 122 123 static struct option long_options[] = 124 { 125 { "help", no_argument, 0, 261 }, 126 { "version", no_argument, 0, 262 }, 127 { 0, 0, 0, 0 }, 128 }; 129 119 130 120 131 static int copy(int, const char *, int, const char *, off_t); … … 129 140 static int trymmap(int); 130 141 #endif 131 static int usage( void);142 static int usage(FILE *); 132 143 133 144 int 134 kmk_builtin_install(int argc, char *argv[] )145 kmk_builtin_install(int argc, char *argv[], char **envp) 135 146 { 136 147 struct stat from_sb, to_sb; … … 158 169 iflags = 0; 159 170 group = owner = NULL; 160 while ((ch = getopt (argc, argv, "B:bCcdf:g:Mm:o:pSsv")) != -1)171 while ((ch = getopt_long(argc, argv, "B:bCcdf:g:Mm:o:pSsv", long_options, NULL)) != -1) 161 172 switch((char)ch) { 162 173 case 'B': … … 217 228 verbose = 1; 218 229 break; 230 case 261: 231 usage(stdout); 232 return 0; 233 case 262: 234 return kbuild_version(argv[0]); 219 235 case '?': 220 236 default: 221 return usage( );237 return usage(stderr); 222 238 } 223 239 argc -= optind; … … 227 243 if (dostrip && dodir) { 228 244 warnx("-d and -s may not be specified together"); 229 return usage( );245 return usage(stderr); 230 246 } 231 247 232 248 /* must have at least two arguments, except when creating directories */ 233 249 if (argc == 0 || (argc == 1 && !dodir)) 234 return usage( );250 return usage(stderr); 235 251 236 252 /* need to make a temp copy so we can compare stripped version */ … … 292 308 if (argc != 2) { 293 309 warnx("wrong number or types of arguments"); 294 return usage( );310 return usage(stderr); 295 311 } 296 312 … … 927 943 */ 928 944 static int 929 usage() 930 { 931 (void)fprintf(stderr, 932 "usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n" 933 " [-o owner] file1 file2\n" 934 " install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n" 935 " [-o owner] file1 ... fileN directory\n" 936 " install -d [-v] [-g group] [-m mode] [-o owner] directory ...\n"); 945 usage(FILE *pf) 946 { 947 fprintf(stderr, 948 "usage: %s [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n" 949 " [-o owner] file1 file2\n" 950 " or: %s [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]\n" 951 " [-o owner] file1 ... fileN directory\n" 952 " or: %s -d [-v] [-g group] [-m mode] [-o owner] directory ...\n" 953 " or: %s --help\n" 954 " or: %s --version\n", 955 g_progname, g_progname, g_progname, g_progname, g_progname); 937 956 return EX_USAGE; 938 957 } -
trunk/src/kmk/kmkbuiltin/kDepIDB.c
r1165 r1183 788 788 static void usage(const char *argv0) 789 789 { 790 printf("syntax: %s -o <output> -t <target> [-f] [-s] <vc idb-file>\n", argv0); 790 printf("usage: %s -o <output> -t <target> [-f] [-s] <vc idb-file>\n" 791 " or: %s --help\n" 792 " or: %s --version\n", 793 argv0, argv0, argv0); 791 794 } 792 795 … … 820 823 if (argv[i][0] == '-') 821 824 { 822 switch (argv[i][1]) 825 const char *psz = &argv[i][1]; 826 if (*psz == '-') 827 { 828 if (!strcmp(psz, "-help")) 829 psz = "?"; 830 else if (!strcmp(psz, "-version")) 831 psz = "v"; 832 } 833 834 switch (*psz) 823 835 { 824 836 /* … … 896 908 897 909 /* 910 * The mandatory version & help. 911 */ 912 case '?': 913 usage(argv[0]); 914 return 0; 915 case 'v': 916 return kbuild_version(argv[0]); 917 918 /* 898 919 * Invalid argument. 899 920 */ -
trunk/src/kmk/kmkbuiltin/ln.c
r942 r1183 62 62 #endif 63 63 64 #include "kmkbuiltin.h" 65 64 66 static int fflag; /* Unlink existing files. */ 65 67 static int hflag; /* Check new name for symlink first. */ … … 70 72 static int (*linkf)(const char *, const char *); 71 73 static char linkch; 74 static struct option long_options[] = 75 { 76 { "help", no_argument, 0, 261 }, 77 { "version", no_argument, 0, 262 }, 78 { 0, 0, 0, 0 }, 79 }; 80 72 81 73 82 static int linkit(const char *, const char *, int); 74 static int usage( void);83 static int usage(FILE *); 75 84 76 85 77 86 int 78 kmk_builtin_ln(int argc, char *argv[] )87 kmk_builtin_ln(int argc, char *argv[], char **envp) 79 88 { 80 89 struct stat sb; 81 char * p, *sourcedir;90 char *sourcedir; 82 91 int ch, exitval; 83 92 84 /* initialize globals. */ 85 fflag = hflag = iflag = sflag = vflag = 0; 86 linkch = 0; 87 linkf = NULL; 88 89 /* kmk: reset getopt() and set program name. */ 90 g_progname = argv[0]; 91 opterr = 1; 92 optarg = NULL; 93 optopt = 0; 94 optind = 0; /* init */ 95 96 #if 0 /* kmk: we don't need this. */ 97 /* 98 * Test for the special case where the utility is called as 99 * "link", for which the functionality provided is greatly 100 * simplified. 101 */ 102 if ((p = rindex(argv[0], '/')) == NULL) 103 p = argv[0]; 104 else 105 ++p; 106 if (strcmp(p, "link") == 0) { 107 while (getopt(argc, argv, "") != -1) 108 return usage(); 109 argc -= optind; 110 argv += optind; 111 if (argc != 2) 112 return usage(); 113 linkf = link; 114 return linkit(argv[0], argv[1], 0); 115 } 116 #else 117 (void)p; 118 #endif 119 120 121 while ((ch = getopt(argc, argv, "fhinsv")) != -1) 93 /* initialize globals. */ 94 fflag = hflag = iflag = sflag = vflag = 0; 95 linkch = 0; 96 linkf = NULL; 97 98 /* kmk: reset getopt() and set program name. */ 99 g_progname = argv[0]; 100 opterr = 1; 101 optarg = NULL; 102 optopt = 0; 103 optind = 0; /* init */ 104 105 while ((ch = getopt_long(argc, argv, "fhinsv", long_options, NULL)) != -1) 122 106 switch (ch) { 123 107 case 'f': … … 139 123 vflag = 1; 140 124 break; 125 case 261: 126 usage(stdout); 127 return 0; 128 case 262: 129 return kbuild_version(argv[0]); 141 130 case '?': 142 131 default: 143 return usage( );132 return usage(stderr); 144 133 } 145 134 … … 152 141 switch(argc) { 153 142 case 0: 154 return usage( );143 return usage(stderr); 155 144 /* NOTREACHED */ 156 145 case 1: /* ln target */ … … 174 163 return err(1, "%s", sourcedir); 175 164 if (!S_ISDIR(sb.st_mode)) 176 return usage( );165 return usage(stderr); 177 166 for (exitval = 0; *argv != sourcedir; ++argv) 178 167 exitval |= linkit(*argv, sourcedir, 1); … … 261 250 262 251 static int 263 usage(void) 264 { 265 (void)fprintf(stderr, "%s\n%s\n%s\n", 266 "usage: ln [-fhinsv] source_file [target_file]", 267 " ln [-fhinsv] source_file ... target_dir", 268 " link source_file target_file"); 252 usage(FILE *pf) 253 { 254 fprintf(pf, "usage: %s [-fhinsv] source_file [target_file]\n" 255 " or: %s [-fhinsv] source_file ... target_dir\n" 256 " or: %s source_file target_file\n" 257 " or: %s --help\n" 258 " or: %s --version\n"); 269 259 return 1; 270 260 } -
trunk/src/kmk/kmkbuiltin/md5sum.c
r1125 r1183 65 65 ); 66 66 return 1; 67 }68 69 70 /**71 * Prints the version string.72 * @returns 073 */74 static int version(void)75 {76 #ifdef kmk_builtin_md5sum77 fprintf(stdout, "kmk_md5sum (kBuild) %d.%d.%d\n"78 "Copyright (c) 2007 knut st. osmundsen\n",79 KBUILD_VERSION_MAJOR, KBUILD_VERSION_MINOR, KBUILD_VERSION_PATCH);80 #else81 fprintf(stdout, "kmk_builtin_md5sum (kBuild) %d.%d.%d\n"82 "Copyright (c) 2007 knut st. osmundsen\n",83 KBUILD_VERSION_MAJOR, KBUILD_VERSION_MINOR, KBUILD_VERSION_PATCH);84 #endif85 return 0;86 67 } 87 68 … … 713 694 714 695 case 'v': 715 return version();696 return kbuild_version(argv[0]); 716 697 717 698 /* … … 761 742 } 762 743 763 -
trunk/src/kmk/kmkbuiltin/mkdir.c
r942 r1183 64 64 #endif 65 65 66 #include "kmkbuiltin.h" 67 68 69 static int vflag; 70 static struct option long_options[] = 71 { 72 { "help", no_argument, 0, 261 }, 73 { "version", no_argument, 0, 262 }, 74 { 0, 0, 0, 0 }, 75 }; 76 77 66 78 extern void * setmode(const char *p); 67 79 extern mode_t getmode(const void *bbox, mode_t omode); 68 80 69 81 static int build(char *, mode_t); 70 static int usage(void); 71 72 static int vflag; 82 static int usage(FILE *); 83 73 84 74 85 int 75 kmk_builtin_mkdir(int argc, char *argv[] )86 kmk_builtin_mkdir(int argc, char *argv[], char **envp) 76 87 { 77 88 int ch, exitval, success, pflag; … … 91 102 optopt = 0; 92 103 optind = 0; /* init */ 93 while ((ch = getopt (argc, argv, "m:pv")) != -1)104 while ((ch = getopt_long(argc, argv, "m:pv", long_options, NULL)) != -1) 94 105 switch(ch) { 95 106 case 'm': … … 102 113 vflag = 1; 103 114 break; 115 case 261: 116 usage(stdout); 117 return 0; 118 case 262: 119 return kbuild_version(argv[0]); 104 120 case '?': 105 106 return usage( );121 default: 122 return usage(stderr); 107 123 } 108 124 … … 110 126 argv += optind; 111 127 if (argv[0] == NULL) 112 return usage( );128 return usage(stderr); 113 129 114 130 if (mode == NULL) { … … 252 268 253 269 static int 254 usage(void) 255 { 256 257 (void)fprintf(stderr, "usage: mkdir [-pv] [-m mode] directory ...\n"); 270 usage(FILE *pf) 271 { 272 fprintf(pf, "usage: %s [-pv] [-m mode] directory ...\n" 273 " or: %s --help\n" 274 " or: %s --version\n", 275 g_progname, g_progname, g_progname); 258 276 return EX_USAGE; 259 277 } -
trunk/src/kmk/kmkbuiltin/mv.c
r942 r1183 79 79 #endif 80 80 81 #if !defined(__FreeBSD__) && !defined(__APPLE__) 82 extern void strmode(mode_t mode, char *p); 83 #endif 81 #include "kmkbuiltin.h" 82 84 83 85 84 static int fflg, iflg, nflg, vflg; 85 static struct option long_options[] = 86 { 87 { "help", no_argument, 0, 261 }, 88 { "version", no_argument, 0, 262 }, 89 { 0, 0, 0, 0 }, 90 }; 91 86 92 87 93 static int do_move(char *, char *); … … 90 96 static int copy(char *, char *); 91 97 #endif 92 static int usage(void); 98 static int usage(FILE *); 99 100 #if !defined(__FreeBSD__) && !defined(__APPLE__) 101 extern void strmode(mode_t mode, char *p); 102 #endif 93 103 94 104 #if !defined(__FreeBSD__) && !defined(__APPLE__) … … 115 125 116 126 int 117 kmk_builtin_mv(int argc, char *argv[] )127 kmk_builtin_mv(int argc, char *argv[], char **envp) 118 128 { 119 129 size_t baselen, len; … … 134 144 optind = 0; /* init */ 135 145 136 while ((ch = getopt (argc, argv, "finv")) != -1)146 while ((ch = getopt_long(argc, argv, "finv", long_options, NULL)) != -1) 137 147 switch (ch) { 138 148 case 'i': … … 151 161 vflg = 1; 152 162 break; 163 case 261: 164 usage(stdout); 165 return 0; 166 case 262: 167 return kbuild_version(argv[0]); 153 168 default: 154 return usage( );169 return usage(stderr); 155 170 } 156 171 argc -= optind; … … 158 173 159 174 if (argc < 2) 160 return usage( );175 return usage(stderr); 161 176 162 177 /* … … 166 181 if (stat(argv[argc - 1], &sb) || !S_ISDIR(sb.st_mode)) { 167 182 if (argc > 2) 168 return usage( );183 return usage(stderr); 169 184 return do_move(argv[0], argv[1]); 170 185 } … … 481 496 482 497 static int 483 usage( void)484 { 485 486 (void)fprintf(stderr, "%s\n%s\n",487 "usage: mv [-f | -i | -n] [-v] source target",488 " mv [-f | -i | -n] [-v] source ... directory");498 usage(FILE *pf) 499 { 500 fprintf(pf, "usage: %s [-f | -i | -n] [-v] source target\n" 501 " or: %s [-f | -i | -n] [-v] source ... directory\n" 502 " or: %s --help\n" 503 " or: %s --version\n"); 489 504 return EX_USAGE; 490 505 } -
trunk/src/kmk/kmkbuiltin/printf.c
r942 r1183 67 67 #endif 68 68 69 #include "kmkbuiltin.h" 70 71 69 72 #ifdef __GNUC__ 70 73 #define ESCAPE '\e' … … 72 75 #define ESCAPE 033 73 76 #endif 77 78 79 static size_t b_length; 80 static char *b_fmt; 81 static int rval; 82 static char **gargv; 83 static struct option long_options[] = 84 { 85 { "help", no_argument, 0, 261 }, 86 { "version", no_argument, 0, 262 }, 87 { 0, 0, 0, 0 }, 88 }; 89 74 90 75 91 static void conv_escape_str(char *, void (*)(int)); … … 84 100 static char *mklong(const char *, int); 85 101 static void check_conversion(const char *, const char *); 86 static void usage(void);102 static int usage(FILE *); 87 103 88 104 static void b_count(int); 89 105 static void b_output(int); 90 static size_t b_length;91 static char *b_fmt;92 93 static int rval;94 static char **gargv;95 106 96 107 #ifdef BUILTIN /* csh builtin */ … … 127 138 } 128 139 129 int kmk_builtin_printf(int argc, char *argv[] )140 int kmk_builtin_printf(int argc, char *argv[], char **envp) 130 141 { 131 142 char *fmt, *start; … … 152 163 #endif 153 164 154 while ((ch = getopt (argc, argv, "")) != -1) {165 while ((ch = getopt_long(argc, argv, "", long_options, NULL)) != -1) { 155 166 switch (ch) { 167 case 261: 168 usage(stdout); 169 return 0; 170 case 262: 171 return kbuild_version(argv[0]); 156 172 case '?': 157 173 default: 158 usage(); 159 return 1; 174 return usage(stderr); 160 175 } 161 176 } … … 164 179 165 180 if (argc < 1) { 166 usage(); 167 return 1; 181 return usage(stderr); 168 182 } 169 183 … … 675 689 } 676 690 677 static void 678 usage(void) 679 { 680 (void)fprintf(stderr, "Usage: %s format [arg ...]\n", g_progname); 681 } 691 static int 692 usage(FILE *pf) 693 { 694 fprintf(pf, "usage: %s format [arg ...]\n" 695 " or: %s --help\n" 696 " or: %s --version\n", 697 g_progname, g_progname, g_progname); 698 return 1; 699 } -
trunk/src/kmk/kmkbuiltin/rm.c
r942 r1183 72 72 #endif 73 73 74 #include "kmkbuiltin.h" 75 76 74 77 #ifdef __EMX__ 75 78 #undef S_IFWHT … … 90 93 91 94 static char *argv0; 95 96 static struct option long_options[] = 97 { 98 { "help", no_argument, 0, 261 }, 99 { "version", no_argument, 0, 262 }, 100 { 0, 0, 0, 0 }, 101 }; 102 92 103 93 104 static int check(char *, char *, struct stat *); … … 98 109 static void rm_tree(char **); 99 110 #endif 100 static int usage(void); 111 static int usage(FILE *); 112 113 101 114 102 115 /* … … 108 121 */ 109 122 int 110 kmk_builtin_rm(int argc, char *argv[] )123 kmk_builtin_rm(int argc, char *argv[], char **envp) 111 124 { 112 125 int ch, rflag; 113 char *p; 114 115 /* reinitialize globals */ 116 argv0 = argv[0]; 117 dflag = eval = fflag = iflag = Pflag = vflag = Wflag = stdin_ok = 0; 118 uid = 0; 119 120 /* kmk: reset getopt and set program name. */ 121 g_progname = argv[0]; 122 opterr = 1; 123 optarg = NULL; 124 optopt = 0; 125 optind = 0; /* init */ 126 127 #if 0 /* kmk: we don't need this */ 128 /* 129 * Test for the special case where the utility is called as 130 * "unlink", for which the functionality provided is greatly 131 * simplified. 132 */ 133 if ((p = rindex(argv[0], '/')) == NULL) 134 p = argv[0]; 135 else 136 ++p; 137 if (strcmp(p, "unlink") == 0) { 138 while (getopt(argc, argv, "") != -1) 139 return usage(); 140 argc -= optind; 141 argv += optind; 142 if (argc != 1) 143 return usage(); 144 rm_file(&argv[0]); 145 return eval; 146 } 147 #else 148 (void)p; 149 #endif 126 127 /* reinitialize globals */ 128 argv0 = argv[0]; 129 dflag = eval = fflag = iflag = Pflag = vflag = Wflag = stdin_ok = 0; 130 uid = 0; 131 132 /* kmk: reset getopt and set program name. */ 133 g_progname = argv[0]; 134 opterr = 1; 135 optarg = NULL; 136 optopt = 0; 137 optind = 0; /* init */ 138 150 139 Pflag = rflag = 0; 151 while ((ch = getopt (argc, argv, "dfiPRrvW")) != -1)140 while ((ch = getopt_long(argc, argv, "dfiPRrvW", long_options, NULL)) != -1) 152 141 switch(ch) { 153 142 case 'd': … … 182 171 break; 183 172 #endif 173 case 261: 174 usage(stdout); 175 return 0; 176 case 262: 177 return kbuild_version(argv[0]); 178 case '?': 184 179 default: 185 return usage( );180 return usage(stderr); 186 181 } 187 182 argc -= optind; … … 191 186 if (fflag) 192 187 return (0); 193 return usage( );188 return usage(stderr); 194 189 } 195 190 … … 603 598 604 599 static int 605 usage( void)606 { 607 608 (void)fprintf(stderr, "%s\n%s\n",609 "usage: rm [-f | -i] [-dPRrvW] file ...\n",610 " unlink file");600 usage(FILE *pf) 601 { 602 fprintf(pf, "usage: %s [-f | -i] [-dPRrvW] file ...\n" 603 " or: %s --help\n" 604 " or: %s --version\n", 605 g_progname, g_progname, g_progname); 611 606 return EX_USAGE; 612 607 } -
trunk/src/kmk/kmkbuiltin/rmdir.c
r1151 r1183 51 51 #include <unistd.h> 52 52 #include "getopt.h" 53 #include "kmkbuiltin.h" 53 54 54 55 #ifdef _MSC_VER … … 57 58 58 59 static int rm_path(char *); 59 static int usage( void);60 static int usage(FILE *); 60 61 61 62 static int pflag; … … 66 67 static struct option long_options[] = 67 68 { 69 { "help", no_argument, 0, 262 }, 68 70 { "ignore-fail-on-non-empty", no_argument, 0, 260 }, 69 71 { "ignore-fail-on-not-exist", no_argument, 0, 261 }, 70 72 { "parents", no_argument, 0, 'p' }, 71 73 { "verbose", no_argument, 0, 'v' }, 74 { "version", no_argument, 0, 263 }, 72 75 { 0, 0, 0, 0 }, 73 76 }; … … 75 78 76 79 int 77 kmk_builtin_rmdir(int argc, char *argv[] )80 kmk_builtin_rmdir(int argc, char *argv[], char **envp) 78 81 { 79 82 int ch, errors; … … 102 105 ignore_fail_on_not_exist = 1; 103 106 break; 107 case 262: 108 return kbuild_version(argv[0]); 109 case 263: 110 usage(stdout); 111 return 0; 104 112 case '?': 105 113 default: 106 return usage( );114 return usage(stderr); 107 115 } 108 116 argc -= optind; … … 110 118 111 119 if (argc == 0) 112 return /*usage( )*/0;120 return /*usage(stderr)*/0; 113 121 114 122 for (errors = 0; *argv; argv++) { … … 181 189 182 190 static int 183 usage( void)191 usage(FILE *pf) 184 192 { 185 186 (void)fprintf(stderr, "usage: rmdir [-pv --ignore-fail-on-non-empty --ignore-fail-on-not-exist] directory ...\n"); 193 (void)fprintf(pf, "usage: %s [-pv --ignore-fail-on-non-empty --ignore-fail-on-not-exist] directory ...\n" 194 " or: %s --help\n" 195 " or: %s --version\n", 196 g_progname, g_progname, g_progname); 187 197 return 1; 188 198 }
Note:
See TracChangeset
for help on using the changeset viewer.