getopt_ulflags -> getopt32.

It is impossible to formulate sane ABI based on
size of ulong because it can be 32-bit or 64-bit.
Basically it means that you cannot portably use
more that 32 option chars in one call anyway...
Make it explicit.
This commit is contained in:
Denis Vlasenko 2006-10-03 21:00:06 +00:00
parent 40920825d5
commit 67b23e6043
120 changed files with 322 additions and 327 deletions

View File

@ -41,7 +41,7 @@ static void header_verbose_list_ar(const file_header_t *file_header)
int ar_main(int argc, char **argv)
{
archive_handle_t *archive_handle;
unsigned long opt;
unsigned opt;
static const char msg_unsupported_err[] =
"Archive %s not supported. Install binutils 'ar'.";
char magic[8];
@ -49,8 +49,8 @@ int ar_main(int argc, char **argv)
archive_handle = init_handle();
/* Prepend '-' to the first argument if required */
bb_opt_complementally = "--:p:t:x:-1:?:p--tx:t--px:x--pt";
opt = bb_getopt_ulflags(argc, argv, "ptxovcr");
opt_complementary = "--:p:t:x:-1:?:p--tx:t--px:x--pt";
opt = getopt32(argc, argv, "ptxovcr");
if (opt & AR_CTX_PRINT) {
archive_handle->action_data = data_extract_to_stdout;

View File

@ -16,10 +16,10 @@ int bunzip2_main(int argc, char **argv)
{
USE_DESKTOP(long long) int status;
char *filename;
unsigned long opt;
unsigned opt;
int src_fd, dst_fd;
opt = bb_getopt_ulflags(argc, argv, "cf");
opt = getopt32(argc, argv, "cf");
/* Set input filename and number */
filename = argv[optind];

View File

@ -30,7 +30,7 @@ int cpio_main(int argc, char **argv)
{
archive_handle_t *archive_handle;
char *cpio_filename = NULL;
unsigned long opt;
unsigned opt;
/* Initialise */
archive_handle = init_handle();
@ -38,7 +38,7 @@ int cpio_main(int argc, char **argv)
archive_handle->seek = seek_by_char;
archive_handle->flags = ARCHIVE_EXTRACT_NEWER | ARCHIVE_PRESERVE_DATE;
opt = bb_getopt_ulflags(argc, argv, "ituvF:dm", &cpio_filename);
opt = getopt32(argc, argv, "ituvF:dm", &cpio_filename);
/* One of either extract or test options must be given */
if ((opt & (CPIO_OPT_TEST | CPIO_OPT_EXTRACT)) == 0) {

View File

@ -18,7 +18,7 @@ int dpkg_deb_main(int argc, char **argv)
archive_handle_t *ar_archive;
archive_handle_t *tar_archive;
llist_t *control_tar_llist = NULL;
unsigned long opt;
unsigned opt;
char *extract_dir = NULL;
short argcount = 1;
@ -40,8 +40,8 @@ int dpkg_deb_main(int argc, char **argv)
llist_add_to(&control_tar_llist, "control.tar.bz2");
#endif
bb_opt_complementally = "?c--efXx:e--cfXx:f--ceXx:X--cefx:x--cefX";
opt = bb_getopt_ulflags(argc, argv, "cefXx");
opt_complementary = "?c--efXx:e--cfXx:f--ceXx:X--cefx:x--cefX";
opt = getopt32(argc, argv, "cefXx");
if (opt & DPKG_DEB_OPT_CONTENTS) {
tar_archive->action_header = header_verbose_list;

View File

@ -40,9 +40,9 @@ int gunzip_main(int argc, char **argv)
{
USE_DESKTOP(long long) int status;
int exitcode = 0;
unsigned long opt;
unsigned opt;
opt = bb_getopt_ulflags(argc, argv, "cftdv");
opt = getopt32(argc, argv, "cftdv");
/* if called as zcat */
if (strcmp(bb_applet_name, "zcat") == 0) {
opt |= GUNZIP_OPT_STDOUT;

View File

@ -1134,14 +1134,14 @@ int gzip_main(int argc, char **argv)
OPT_force = 0x2,
};
unsigned long opt;
unsigned opt;
int result;
int inFileNum;
int outFileNum;
struct stat statBuf;
char *delFileName;
opt = bb_getopt_ulflags(argc, argv, "cf123456789qv" USE_GUNZIP("d"));
opt = getopt32(argc, argv, "cf123456789qv" USE_GUNZIP("d"));
//if (opt & 0x1) // -c
//if (opt & 0x2) // -f
/* Ignore 1-9 (compression level) options */
@ -1157,7 +1157,7 @@ int gzip_main(int argc, char **argv)
//if (opt & 0x800) // -q
//if (opt & 0x1000) // -v
if (ENABLE_GUNZIP && (opt & 0x2000)) { // -d
/* FIXME: bb_getopt_ulflags should not depend on optind */
/* FIXME: getopt32 should not depend on optind */
optind = 1;
return gunzip_main(argc, argv);
}

View File

@ -688,7 +688,7 @@ int tar_main(int argc, char **argv)
archive_handle_t *tar_handle;
char *base_dir = NULL;
const char *tar_filename = "-";
unsigned long opt;
unsigned opt;
llist_t *excludes = NULL;
/* Initialise default values */
@ -696,12 +696,12 @@ int tar_main(int argc, char **argv)
tar_handle->flags = ARCHIVE_CREATE_LEADING_DIRS | ARCHIVE_PRESERVE_DATE | ARCHIVE_EXTRACT_UNCONDITIONAL;
/* Prepend '-' to the first argument if required */
bb_opt_complementally = ENABLE_FEATURE_TAR_CREATE ?
opt_complementary = ENABLE_FEATURE_TAR_CREATE ?
"--:X::T::\n::c:t:x:?:c--tx:t--cx:x--ct" :
"--:X::T::\n::t:x:?:t--x:x--t";
if (ENABLE_FEATURE_TAR_LONG_OPTIONS)
bb_applet_long_options = tar_long_options;
opt = bb_getopt_ulflags(argc, argv, tar_options,
applet_long_options = tar_long_options;
opt = getopt32(argc, argv, tar_options,
&base_dir, /* Change to dir <optarg> */
&tar_filename /* archive filename */
#ifdef CONFIG_FEATURE_TAR_FROM

View File

@ -16,7 +16,7 @@ int uncompress_main(int argc, char **argv)
int status = EXIT_SUCCESS;
unsigned long flags;
flags = bb_getopt_ulflags(argc, argv, "cf");
flags = getopt32(argc, argv, "cf");
while (optind < argc) {
char *compressed_file = argv[optind++];

View File

@ -19,10 +19,10 @@ int unlzma_main(int argc, char **argv)
{
USE_DESKTOP(long long) int status;
char *filename;
unsigned long opt;
unsigned opt;
int src_fd, dst_fd;
opt = bb_getopt_ulflags(argc, argv, "c");
opt = getopt32(argc, argv, "c");
/* Set input filename and number */
filename = argv[optind];

View File

@ -24,9 +24,9 @@ int setconsole_main(int argc, char **argv)
const char *device = CURRENT_TTY;
#if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS
bb_applet_long_options = setconsole_long_options;
applet_long_options = setconsole_long_options;
#endif
flags = bb_getopt_ulflags(argc, argv, "r");
flags = getopt32(argc, argv, "r");
if (argc - optind > 1)
bb_show_usage();

View File

@ -91,7 +91,7 @@ int cal_main(int argc, char **argv)
setlocale(LC_TIME, "");
#endif
flags = bb_getopt_ulflags(argc, argv, "jy");
flags = getopt32(argc, argv, "jy");
julian = flags & 1;

View File

@ -18,7 +18,7 @@ int cat_main(int argc, char **argv)
FILE *f;
int retval = EXIT_SUCCESS;
bb_getopt_ulflags(argc, argv, "u");
getopt32(argc, argv, "u");
argv += optind;
if (!*argv) {

View File

@ -17,7 +17,7 @@ int catv_main(int argc, char **argv)
int retval = EXIT_SUCCESS, fd;
unsigned long flags;
flags = bb_getopt_ulflags(argc, argv, "etv");
flags = getopt32(argc, argv, "etv");
#define CATV_OPT_e (1<<0)
#define CATV_OPT_t (1<<1)
#define CATV_OPT_v (1<<2)

View File

@ -31,7 +31,7 @@ int chgrp_main(int argc, char **argv)
int recursiveFlag;
int retval = EXIT_SUCCESS;
recursiveFlag = bb_getopt_ulflags(argc, argv, "R");
recursiveFlag = getopt32(argc, argv, "R");
if (argc - optind < 2) {
bb_show_usage();

View File

@ -43,7 +43,7 @@ int chown_main(int argc, char **argv)
int retval = EXIT_SUCCESS;
char *groupName;
flags = bb_getopt_ulflags(argc, argv, "Rh");
flags = getopt32(argc, argv, "Rh");
if (flags & FLAG_h) chown_func = lchown;

View File

@ -54,7 +54,7 @@ int cmp_main(int argc, char **argv)
xfunc_error_retval = 2; /* 1 is returned if files are different. */
opt = bb_getopt_ulflags(argc, argv, opt_chars);
opt = getopt32(argc, argv, opt_chars);
if (((opt & (CMP_OPT_s|CMP_OPT_l)) == (CMP_OPT_s|CMP_OPT_l))
|| (((unsigned int)(--argc - optind)) > 1))

View File

@ -112,7 +112,7 @@ int comm_main(int argc, char **argv)
{
unsigned long flags;
flags = bb_getopt_ulflags(argc, argv, "123");
flags = getopt32(argc, argv, "123");
if (optind + 2 != argc)
bb_show_usage();

View File

@ -39,7 +39,7 @@ int cp_main(int argc, char **argv)
int flags;
int status = 0;
flags = bb_getopt_ulflags(argc, argv, "pdRfiarPHL");
flags = getopt32(argc, argv, "pdRfiarPHL");
if (flags & 32) {
flags |= (FILEUTILS_PRESERVE_STATUS | FILEUTILS_RECUR | FILEUTILS_DEREFERENCE);

View File

@ -12,14 +12,13 @@
#include "busybox.h"
/* option vars */
static const char *const optstring = "b:c:f:d:sn";
static const char optstring[] = "b:c:f:d:sn";
#define CUT_OPT_BYTE_FLGS (1<<0)
#define CUT_OPT_CHAR_FLGS (1<<1)
#define CUT_OPT_FIELDS_FLGS (1<<2)
#define CUT_OPT_DELIM_FLGS (1<<3)
#define CUT_OPT_SUPPRESS_FLGS (1<<4)
static unsigned long opt;
static unsigned opt;
static char delim = '\t'; /* delimiter, default is tab */
@ -179,9 +178,8 @@ int cut_main(int argc, char **argv)
{
char *sopt, *ltok;
bb_opt_complementally = "b--bcf:c--bcf:f--bcf";
opt =
bb_getopt_ulflags(argc, argv, optstring, &sopt, &sopt, &sopt, &ltok);
opt_complementary = "b--bcf:c--bcf:f--bcf";
opt = getopt32(argc, argv, optstring, &sopt, &sopt, &sopt, &ltok);
if (!(opt & (CUT_OPT_BYTE_FLGS | CUT_OPT_CHAR_FLGS | CUT_OPT_FIELDS_FLGS)))
bb_error_msg_and_die
("expected a list of bytes, characters, or fields");

View File

@ -42,7 +42,7 @@ int date_main(int argc, char **argv)
{
time_t tm;
struct tm tm_time;
unsigned long opt;
unsigned opt;
int ifmt = -1;
char *date_str = NULL;
char *date_fmt = NULL;
@ -50,9 +50,9 @@ int date_main(int argc, char **argv)
char *isofmt_arg;
char *hintfmt_arg;
bb_opt_complementally = "?:d--s:s--d"
opt_complementary = "?:d--s:s--d"
USE_FEATURE_DATE_ISOFMT(":R--I:I--R");
opt = bb_getopt_ulflags(argc, argv, "Rs:ud:r:"
opt = getopt32(argc, argv, "Rs:ud:r:"
USE_FEATURE_DATE_ISOFMT("I::D:"),
&date_str, &date_str, &filename
USE_FEATURE_DATE_ISOFMT(, &isofmt_arg, &hintfmt_arg));

View File

@ -41,7 +41,7 @@ int df_main(int argc, char **argv)
unsigned long df_disp_hr = KILOBYTE;
#endif
int status = EXIT_SUCCESS;
unsigned long opt;
unsigned opt;
FILE *mount_table;
struct mntent *mount_entry;
struct statfs s;
@ -49,8 +49,8 @@ int df_main(int argc, char **argv)
const char *disp_units_hdr = hdr_1k;
#ifdef CONFIG_FEATURE_HUMAN_READABLE
bb_opt_complementally = "h-km:k-hm:m-hk";
opt = bb_getopt_ulflags(argc, argv, "hmk");
opt_complementary = "h-km:k-hm:m-hk";
opt = getopt32(argc, argv, "hmk");
if(opt & 1) {
df_disp_hr = 0;
disp_units_hdr = " Size";
@ -60,7 +60,7 @@ int df_main(int argc, char **argv)
disp_units_hdr = "1M-blocks";
}
#else
opt = bb_getopt_ulflags(argc, argv, "k");
opt = getopt32(argc, argv, "k");
#endif
bb_printf("Filesystem%11s%-15sUsed Available Use%% Mounted on\n",

View File

@ -1164,9 +1164,9 @@ int diff_main(int argc, char **argv)
char *U_opt;
llist_t *L_arg = NULL;
bb_opt_complementally = "L::";
opt_complementary = "L::";
cmd_flags =
bb_getopt_ulflags(argc, argv, "abdiL:NqrsS:tTU:wu", &L_arg, &start,
getopt32(argc, argv, "abdiL:NqrsS:tTU:wu", &L_arg, &start,
&U_opt);
if (cmd_flags & FLAG_L) {

View File

@ -93,11 +93,11 @@ int dos2unix_main(int argc, char *argv[])
ConvType = CT_UNIX2DOS; /*1 */
}
/* -u and -d are mutally exclusive */
bb_opt_complementally = "?:u--d:d--u";
opt_complementary = "?:u--d:d--u";
/* process parameters */
/* -u convert to unix */
/* -d convert to dos */
o = bb_getopt_ulflags(argc, argv, "du");
o = getopt32(argc, argv, "du");
/* Do the conversion requested by an argument else do the default
* conversion depending on our name. */

View File

@ -153,7 +153,7 @@ int du_main(int argc, char **argv)
int slink_depth_save;
int print_final_total;
char *smax_print_depth;
unsigned long opt;
unsigned opt;
#ifdef CONFIG_FEATURE_DU_DEFUALT_BLOCKSIZE_1K
if (getenv("POSIXLY_CORRECT")) { /* TODO - a new libbb function? */
@ -172,8 +172,8 @@ int du_main(int argc, char **argv)
* ignore -a. This is consistent with -s being equivalent to -d 0.
*/
#ifdef CONFIG_FEATURE_HUMAN_READABLE
bb_opt_complementally = "h-km:k-hm:m-hk:H-L:L-H:s-d:d-s";
opt = bb_getopt_ulflags(argc, argv, "aHkLsx" "d:" "lc" "hm", &smax_print_depth);
opt_complementary = "h-km:k-hm:m-hk:H-L:L-H:s-d:d-s";
opt = getopt32(argc, argv, "aHkLsx" "d:" "lc" "hm", &smax_print_depth);
if((opt & (1 << 9))) {
/* -h opt */
disp_hr = 0;
@ -187,8 +187,8 @@ int du_main(int argc, char **argv)
disp_hr = KILOBYTE;
}
#else
bb_opt_complementally = "H-L:L-H:s-d:d-s";
opt = bb_getopt_ulflags(argc, argv, "aHkLsx" "d:" "lc", &smax_print_depth);
opt_complementary = "H-L:L-H:s-d:d-s";
opt = getopt32(argc, argv, "aHkLsx" "d:" "lc", &smax_print_depth);
#if !defined CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
if((opt & (1 << 2))) {
/* -k opt */

View File

@ -46,16 +46,16 @@ int env_main(int argc, char** argv)
static char *cleanenv[1] = { NULL };
char **ep;
unsigned long opt;
unsigned opt;
llist_t *unset_env = NULL;
extern char **environ;
bb_opt_complementally = "u::";
opt_complementary = "u::";
#if ENABLE_FEATURE_ENV_LONG_OPTIONS
bb_applet_long_options = env_long_options;
applet_long_options = env_long_options;
#endif
opt = bb_getopt_ulflags(argc, argv, "+iu:", &unset_env);
opt = getopt32(argc, argv, "+iu:", &unset_env);
argv += optind;
if (*argv && (argv[0][0] == '-') && !argv[0][1]) {

View File

@ -60,7 +60,7 @@ int fold_main(int argc, char **argv)
}
}
flags = bb_getopt_ulflags(argc, argv, "bsw:", &w_opt);
flags = getopt32(argc, argv, "bsw:", &w_opt);
if (flags & FLAG_WIDTH)
width = bb_xgetlarg(w_opt, 10, 1, 10000);

View File

@ -60,7 +60,7 @@ int head_main(int argc, char **argv)
}
#endif
/* No size benefit in converting this to bb_getopt_ulflags */
/* No size benefit in converting this to getopt32 */
while ((opt = getopt(argc, argv, head_opts)) > 0) {
switch (opt) {
#if ENABLE_FEATURE_FANCY_HEAD

View File

@ -50,8 +50,8 @@ int id_main(int argc, char **argv)
/* Don't allow -n -r -nr -ug -rug -nug -rnug */
/* Don't allow more than one username */
bb_opt_complementally = "?1:?:u--g:g--u:r?ug:n?ug";
flags = bb_getopt_ulflags(argc, argv, "rnug");
opt_complementary = "?1:?:u--g:g--u:r?ug:n?ug";
flags = getopt32(argc, argv, "rnug");
/* This values could be overwritten later */
uid = geteuid();

View File

@ -45,11 +45,11 @@ int install_main(int argc, char **argv)
int ret = EXIT_SUCCESS, flags, i, isdir;
#if ENABLE_FEATURE_INSTALL_LONG_OPTIONS
bb_applet_long_options = install_long_options;
applet_long_options = install_long_options;
#endif
bb_opt_complementally = "?:s--d:d--s";
opt_complementary = "?:s--d:d--s";
/* -c exists for backwards compatibility, its needed */
flags = bb_getopt_ulflags(argc, argv, "cdpsg:m:o:", &gid_str, &mode_str, &uid_str); /* 'a' must be 2nd */
flags = getopt32(argc, argv, "cdpsg:m:o:", &gid_str, &mode_str, &uid_str); /* 'a' must be 2nd */
/* preserve access and modification time, this is GNU behaviour, BSD only preserves modification time */
if (flags & INSTALL_OPT_PRESERVE_TIME) {

View File

@ -31,7 +31,7 @@ mode_t getopt_mk_fifo_nod(int argc, char **argv)
mode_t mode = 0666;
char *smode = NULL;
bb_getopt_ulflags(argc, argv, "m:", &smode);
getopt32(argc, argv, "m:", &smode);
if(smode) {
if (bb_parse_mode(smode, &mode))
umask(0);

View File

@ -30,7 +30,7 @@ int ln_main(int argc, char **argv)
struct stat statbuf;
int (*link_func)(const char *, const char *);
flag = bb_getopt_ulflags(argc, argv, "sfnbS:", &suffix);
flag = getopt32(argc, argv, "sfnbS:", &suffix);
if (argc == optind) {
bb_show_usage();

View File

@ -877,7 +877,7 @@ int ls_main(int argc, char **argv)
struct dnode **dnp;
struct dnode *dn;
struct dnode *cur;
long opt;
unsigned opt;
int nfiles = 0;
int dnfiles;
int dndirs;
@ -904,12 +904,12 @@ int ls_main(int argc, char **argv)
#endif
#ifdef CONFIG_FEATURE_LS_COLOR
bb_applet_long_options = ls_color_opt;
applet_long_options = ls_color_opt;
#endif
/* process options */
#ifdef CONFIG_FEATURE_AUTOWIDTH
opt = bb_getopt_ulflags(argc, argv, ls_options, &tabstops_str, &terminal_width_str
opt = getopt32(argc, argv, ls_options, &tabstops_str, &terminal_width_str
#ifdef CONFIG_FEATURE_LS_COLOR
, &color_opt
#endif
@ -921,7 +921,7 @@ int ls_main(int argc, char **argv)
terminal_width = atoi(terminal_width_str);
}
#else
opt = bb_getopt_ulflags(argc, argv, ls_options
opt = getopt32(argc, argv, ls_options
#ifdef CONFIG_FEATURE_LS_COLOR
, &color_opt
#endif

View File

@ -91,7 +91,7 @@ int md5_sha1_sum_main(int argc, char **argv)
: HASH_SHA1;
if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK)
flags = bb_getopt_ulflags(argc, argv, "scw");
flags = getopt32(argc, argv, "scw");
else optind = 1;
if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK && !(flags & FLAG_CHECK)) {

View File

@ -34,13 +34,13 @@ int mkdir_main (int argc, char **argv)
mode_t mode = (mode_t)(-1);
int status = EXIT_SUCCESS;
int flags = 0;
unsigned long opt;
unsigned opt;
char *smode;
#if ENABLE_FEATURE_MKDIR_LONG_OPTIONS
bb_applet_long_options = mkdir_long_options;
applet_long_options = mkdir_long_options;
#endif
opt = bb_getopt_ulflags(argc, argv, "m:p", &smode);
opt = getopt32(argc, argv, "m:p", &smode);
if(opt & 1) {
mode = 0777;
if (!bb_parse_mode (smode, &mode)) {

View File

@ -45,10 +45,10 @@ int mv_main(int argc, char **argv)
int status = 0;
#if ENABLE_FEATURE_MV_LONG_OPTIONS
bb_applet_long_options = mv_long_options;
applet_long_options = mv_long_options;
#endif
bb_opt_complementally = "f-i:i-f";
flags = bb_getopt_ulflags(argc, argv, "fi");
opt_complementary = "f-i:i-f";
flags = getopt32(argc, argv, "fi");
if (optind + 2 > argc) {
bb_show_usage();
}

View File

@ -22,10 +22,10 @@ int rm_main(int argc, char **argv)
{
int status = 0;
int flags = 0;
unsigned long opt;
unsigned opt;
bb_opt_complementally = "f-i:i-f";
opt = bb_getopt_ulflags(argc, argv, "fiRr");
opt_complementary = "f-i:i-f";
opt = getopt32(argc, argv, "fiRr");
if(opt & 1)
flags |= FILEUTILS_FORCE;
if(opt & 2)

View File

@ -22,7 +22,7 @@ int rmdir_main(int argc, char **argv)
int do_dot;
char *path;
flags = bb_getopt_ulflags(argc, argv, "p");
flags = getopt32(argc, argv, "p");
argv += optind;

View File

@ -516,7 +516,7 @@ int stat_main(int argc, char **argv)
int ok = 1;
int (*statfunc)(char const *, char const *) = do_stat;
flags = bb_getopt_ulflags(argc, argv, "ftL"
flags = getopt32(argc, argv, "ftL"
USE_FEATURE_STAT_FORMAT("c:", &format)
);

View File

@ -136,7 +136,7 @@ int sum_main(int argc, char **argv)
int (*sum_func)(const char *, int) = bsd_sum_file;
/* give the bsd func priority over sysv func */
flags = bb_getopt_ulflags(argc, argv, "sr");
flags = getopt32(argc, argv, "sr");
if (flags & 1)
sum_func = sysv_sum_file;
if (flags & 2)

View File

@ -28,7 +28,7 @@ int tee_main(int argc, char **argv)
int c;
#endif
flags = bb_getopt_ulflags(argc, argv, "ia"); /* 'a' must be 2nd */
flags = getopt32(argc, argv, "ia"); /* 'a' must be 2nd */
mode += (flags & 2); /* Since 'a' is the 2nd option... */

View File

@ -32,7 +32,7 @@ int touch_main(int argc, char **argv)
int flags;
int status = EXIT_SUCCESS;
flags = bb_getopt_ulflags(argc, argv, "c");
flags = getopt32(argc, argv, "c");
argv += optind;

View File

@ -23,7 +23,7 @@ int tty_main(int argc, char **argv)
xfunc_error_retval = 2; /* SUSv3 requires > 1 for error. */
silent = bb_getopt_ulflags(argc, argv, "s");
silent = getopt32(argc, argv, "s");
/* gnu tty outputs a warning that it is ignoring all args. */
bb_warn_ignoring_args(argc - optind);

View File

@ -63,7 +63,7 @@ int uname_main(int argc, char **argv)
const unsigned short int *delta;
char toprint;
toprint = bb_getopt_ulflags(argc, argv, options);
toprint = getopt32(argc, argv, options);
if (argc != optind) {
bb_show_usage();

View File

@ -129,7 +129,7 @@ int uudecode_main(int argc, char **argv)
char *outname = NULL;
char *line;
bb_getopt_ulflags(argc, argv, "o:", &outname);
getopt32(argc, argv, "o:", &outname);
if (optind == argc) {
src_stream = stdin;

View File

@ -27,7 +27,7 @@ int uuencode_main(int argc, char **argv)
RESERVE_CONFIG_BUFFER(dst_buf, DST_BUF_SIZE + 1);
tbl = bb_uuenc_tbl_std;
if (bb_getopt_ulflags(argc, argv, "m") & 1) {
if (getopt32(argc, argv, "m") & 1) {
tbl = bb_uuenc_tbl_base64;
}

View File

@ -87,7 +87,7 @@ int wc_main(int argc, char **argv)
char in_word;
unsigned print_type;
print_type = bb_getopt_ulflags(argc, argv, "lwcL");
print_type = getopt32(argc, argv, "lwcL");
if (print_type == 0) {
print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_CHARS);

View File

@ -18,7 +18,7 @@
int mktemp_main(int argc, char **argv)
{
unsigned long flags = bb_getopt_ulflags(argc, argv, "dq");
unsigned long flags = getopt32(argc, argv, "dq");
if (optind + 1 != argc)
bb_show_usage();

View File

@ -18,8 +18,8 @@
int readlink_main(int argc, char **argv)
{
char *buf;
unsigned long opt = ENABLE_FEATURE_READLINK_FOLLOW ?
bb_getopt_ulflags(argc, argv, "f") : 0;
unsigned opt = ENABLE_FEATURE_READLINK_FOLLOW ?
getopt32(argc, argv, "f") : 0;
if (argc != (ENABLE_FEATURE_READLINK_FOLLOW ? optind + 1 : 2))
bb_show_usage();

View File

@ -227,7 +227,7 @@ static const struct option ssd_long_options[] = {
int start_stop_daemon_main(int argc, char **argv)
{
unsigned long opt;
unsigned opt;
char *signame = NULL;
char *startas = NULL;
#if ENABLE_FEATURE_START_STOP_DAEMON_FANCY
@ -235,12 +235,12 @@ int start_stop_daemon_main(int argc, char **argv)
// int retries = -1;
#endif
#if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
bb_applet_long_options = ssd_long_options;
applet_long_options = ssd_long_options;
#endif
/* Check required one context option was given */
bb_opt_complementally = "K:S:?:K--S:S--K:m?p:K?xpun:S?xa";
opt = bb_getopt_ulflags(argc, argv, "KSbqm"
opt_complementary = "K:S:?:K--S:S--K:m?p:K?xpun:S?xa";
opt = getopt32(argc, argv, "KSbqm"
// USE_FEATURE_START_STOP_DAEMON_FANCY("ovR:")
USE_FEATURE_START_STOP_DAEMON_FANCY("ov")
"a:n:s:u:c:x:p:"

View File

@ -567,7 +567,7 @@ for failure and abort the program with an error message so the caller doesn't
have to test the return value (xmalloc(), xstrdup(), etc), wrapped versions
of open(), close(), read(), and write() that test for their own failures
and/or retry automatically, linked list management functions (llist.c),
command line argument parsing (getopt_ulflags.c), and a whole lot more.</p>
command line argument parsing (getopt32.c), and a whole lot more.</p>
<hr />
<p>

View File

@ -124,7 +124,7 @@ int lsattr_main(int argc, char **argv)
{
int i;
flags = bb_getopt_ulflags(argc, argv, "Radlv");
flags = getopt32(argc, argv, "Radlv");
if (optind > argc - 1)
lsattr_args(".");

View File

@ -2634,7 +2634,7 @@ static rstream *next_input_file(void)
int awk_main(int argc, char **argv)
{
unsigned long opt;
unsigned opt;
char *opt_F, *opt_v, *opt_W;
char *s, *s1;
int i, j, c, flen;
@ -2691,7 +2691,7 @@ keep_going:
free(s);
}
opt = bb_getopt_ulflags(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
if (opt & 0x1) setvar_s(V[FS], opt_F); // -F
if (opt & 0x2) if (!is_assignment(opt_v)) bb_show_usage(); // -v
if (opt & 0x4) { // -f

View File

@ -85,7 +85,7 @@ int patch_main(int argc, char **argv)
{
char *p, *i;
ret = bb_getopt_ulflags(argc, argv, "p:i:", &p, &i);
ret = getopt32(argc, argv, "p:i:", &p, &i);
if (ret & 1)
patch_level = bb_xgetlarg(p, 10, -1, USHRT_MAX);
if (ret & 2) {

View File

@ -1109,7 +1109,7 @@ static void add_files_link(llist_t *opt_f)
int sed_main(int argc, char **argv)
{
unsigned long opt;
unsigned opt;
llist_t *opt_e, *opt_f;
int status = EXIT_SUCCESS;
@ -1126,8 +1126,8 @@ int sed_main(int argc, char **argv)
/* do normal option parsing */
opt_e = opt_f = NULL;
bb_opt_complementally = "e::f::"; /* can occur multiple times */
opt = bb_getopt_ulflags(argc, argv, "irne:f:", &opt_e, &opt_f);
opt_complementary = "e::f::"; /* can occur multiple times */
opt = getopt32(argc, argv, "irne:f:", &opt_e, &opt_f);
if (opt & 0x1) { // -i
bbg.in_place++;
atexit(cleanup_outname);
@ -1135,11 +1135,11 @@ int sed_main(int argc, char **argv)
if (opt & 0x2) bbg.regex_type|=REG_EXTENDED; // -r
if (opt & 0x4) bbg.be_quiet++; // -n
if (opt & 0x8) { // -e
/* getopt_ulflags reverses order of arguments, handle it */
/* getopt32 reverses order of arguments, handle it */
add_cmds_link(opt_e);
}
if (opt & 0x10) { // -f
/* getopt_ulflags reverses order of arguments, handle it */
/* getopt32 reverses order of arguments, handle it */
add_files_link(opt_f);
}
/* if we didn't get a pattern from -e or -f, use argv[optind] */

View File

@ -24,7 +24,7 @@
/* options */
static unsigned long opt;
static unsigned opt;
#define GREP_OPTS "lnqvscFiHhe:f:Lo"
#define GREP_OPT_l (1<<0)
#define PRINT_FILES_WITH_MATCHES (opt & GREP_OPT_l)
@ -302,8 +302,8 @@ int grep_main(int argc, char **argv)
char *slines_before;
char *Copt;
bb_opt_complementally = "H-h:e::f::C-AB";
opt = bb_getopt_ulflags(argc, argv,
opt_complementary = "H-h:e::f::C-AB";
opt = getopt32(argc, argv,
GREP_OPTS GREP_OPT_CONTEXT OPT_EGREP,
&pattern_head, &fopt,
&slines_after, &slines_before, &Copt);
@ -336,8 +336,8 @@ int grep_main(int argc, char **argv)
before_buf = (char **)xzalloc(lines_before * sizeof(char *));
#else
/* with auto sanity checks */
bb_opt_complementally = "H-h:e::f::c-n:q-n:l-n";
opt = bb_getopt_ulflags(argc, argv, GREP_OPTS OPT_EGREP,
opt_complementary = "H-h:e::f::c-n:q-n:l-n";
opt = getopt32(argc, argv, GREP_OPTS OPT_EGREP,
&pattern_head, &fopt);
#endif
invert_search = (opt & GREP_OPT_v) != 0; /* 0 | 1 */

View File

@ -399,7 +399,7 @@ int xargs_main(int argc, char **argv)
size_t n_chars = 0;
long orig_arg_max;
const char *eof_str = "_";
unsigned long opt;
unsigned opt;
size_t n_max_chars;
#if ENABLE_FEATURE_XARGS_SUPPORT_ZERO_TERM
xlist_t* (*read_args)(xlist_t*, const char*, size_t, char*) = process_stdin;
@ -407,7 +407,7 @@ int xargs_main(int argc, char **argv)
#define read_args process_stdin
#endif
opt = bb_getopt_ulflags(argc, argv, OPTION_STR, &max_args, &max_chars, &eof_str);
opt = getopt32(argc, argv, OPTION_STR, &max_args, &max_chars, &eof_str);
if (opt & OPT_ZEROTERM)
USE_FEATURE_XARGS_SUPPORT_ZERO_TERM(read_args = process0_stdin);

View File

@ -207,9 +207,9 @@ extern void xsetuid(uid_t uid);
extern off_t fdlength(int fd);
#define BB_GETOPT_ERROR 0x80000000UL
extern const char *bb_opt_complementally;
extern const struct option *bb_applet_long_options;
extern unsigned long bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...);
extern const char *opt_complementary;
extern const struct option *applet_long_options;
extern uint32_t getopt32(int argc, char **argv, const char *applet_opts, ...);
extern int bb_vfprintf(FILE * __restrict stream, const char * __restrict format,
va_list arg) __attribute__ ((format (printf, 2, 0)));
@ -232,7 +232,7 @@ extern char *skip_whitespace(const char *);
#ifndef BUILD_INDIVIDUAL
extern struct BB_applet *find_applet_by_name(const char *name);
void run_applet_by_name(const char *name, int argc, char **argv);
extern void run_applet_by_name(const char *name, int argc, char **argv);
#endif
/* dmalloc will redefine these to it's own implementation. It is safe

View File

@ -34,7 +34,7 @@ RB_AUTOBOOT
for(which=0;delay[which]!=*bb_applet_name;which++);
/* Parse and handle arguments */
flags = bb_getopt_ulflags(argc, argv, "d:nf", &delay);
flags = getopt32(argc, argv, "d:nf", &delay);
if (flags&1) sleep(atoi(delay));
if (!(flags&2)) sync();

View File

@ -30,7 +30,7 @@ LIBBB-y:= \
vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c \
xgethostbyname.c xgethostbyname2.c xreadlink.c xgetlarg.c \
fclose_nonstdin.c fflush_stdout_and_exit.c \
getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \
getopt32.c default_error_retval.c wfopen_input.c speed_table.c \
perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \
warn_ignoring_args.c concat_subpath_file.c vfork_daemon_rexec.c \
bb_do_delay.c

View File

@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
* universal getopt_ulflags implementation for busybox
* universal getopt32 implementation for busybox
*
* Copyright (C) 2003-2005 Vladimir Oleynik <dzo@simtreas.ru>
*
@ -12,13 +12,13 @@
/* Documentation
unsigned long
bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
uint32_t
getopt32(int argc, char **argv, const char *applet_opts, ...)
The command line options must be declared in const char
*applet_opts as a string of chars, for example:
flags = bb_getopt_ulflags(argc, argv, "rnug");
flags = getopt32(argc, argv, "rnug");
If one of the given options is found, a flag value is added to
the return value (an unsigned long).
@ -26,7 +26,7 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
The flag value is determined by the position of the char in
applet_opts string. For example, in the above case:
flags = bb_getopt_ulflags(argc, argv, "rnug");
flags = getopt32(argc, argv, "rnug");
"r" will add 1 (bit 0)
"n" will add 2 (bit 1)
@ -52,13 +52,13 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
char *pointer_to_arg_for_c;
char *pointer_to_arg_for_d;
flags = bb_getopt_ulflags(argc, argv, "a:b:c:d:",
flags = getopt32(argc, argv, "a:b:c:d:",
&pointer_to_arg_for_a, &pointer_to_arg_for_b,
&pointer_to_arg_for_c, &pointer_to_arg_for_d);
The type of the pointer (char* or llist_t*) may be controlled
by the "::" special separator that is set in the external string
bb_opt_complementally (see below for more info).
opt_complementary (see below for more info).
"::" If option can have an *optional* argument, then add a "::"
after its char in applet_opts and provide a pointer to store
@ -72,7 +72,7 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
env -i ls -d /
Here we want env to process just the '-i', not the '-d'.
const struct option *bb_applet_long_options
const struct option *applet_long_options
This struct allows you to define long options. The syntax for
declaring the array is just like that of getopt's longopts.
@ -83,23 +83,20 @@ const struct option *bb_applet_long_options
{ "verbose", 0, 0, 'v' },
{ 0, 0, 0, 0 }
};
bb_applet_long_options = applet_long_options;
applet_long_options = applet_long_options;
The last member of struct option (val) typically is set to
matching short option from applet_opts. If there is no matching
char in applet_opts, then:
- return bit have next position after short options
- if has_arg is not "no_argument", use ptr for arg also
- bb_opt_complementally affects it too
- opt_complementary affects it too
Note: a good applet will make long options configurable via the
config process and not a required feature. The current standard
is to name the config option CONFIG_FEATURE_<applet>_LONG_OPTIONS.
const char *bb_opt_complementally
this should be bb_opt_complementary, but we'll just keep it as
bb_opt_complementally due to the Russian origins
const char *opt_complementary
":" The colon (":") is used to separate groups of two or more chars
and/or groups of chars and special characters (stating some
@ -110,11 +107,11 @@ const char *bb_opt_complementally
Their flags will be turned on if the main option is found even
if they are not specifed on the command line. For example:
bb_opt_complementally = "abc";
flags = bb_getopt_ulflags(argc, argv, "abcd")
opt_complementary = "abc";
flags = getopt32(argc, argv, "abcd")
If getopt() finds "-a" on the command line, then
bb_getopt_ulflags's return value will be as if "-a -b -c" were
getopt32's return value will be as if "-a -b -c" were
found.
"ww" Adjacent double options have a counter associated which indicates
@ -124,15 +121,15 @@ const char *bb_opt_complementally
if w is given more than once, it is "unlimited"
int w_counter = 0;
bb_opt_complementally = "ww";
bb_getopt_ulflags(argc, argv, "w", &w_counter);
opt_complementary = "ww";
getopt32(argc, argv, "w", &w_counter);
if (w_counter)
width = (w_counter == 1) ? 132 : INT_MAX;
else
get_terminal_width(...&width...);
w_counter is a pointer to an integer. It has to be passed to
bb_getopt_ulflags() after all other option argument sinks.
getopt32() after all other option argument sinks.
For example: accept multiple -v to indicate the level of verbosity
and for each -b optarg, add optarg to my_b. Finally, if b is given,
@ -140,8 +137,8 @@ const char *bb_opt_complementally
llist_t *my_b = NULL;
int verbose_level = 0;
bb_opt_complementally = "vv:b::b-c:c-b";
f = bb_getopt_ulflags(argc, argv, "vb:c", &my_b, &verbose_level);
opt_complementary = "vv:b::b-c:c-b";
f = getopt32(argc, argv, "vb:c", &my_b, &verbose_level);
if (f & 2) // -c after -b unsets -b flag
while (my_b) { dosomething_with(my_b->data); my_b = my_b->link; }
if (my_b) // but llist is stored if -b is specified
@ -157,37 +154,37 @@ Special characters:
For example:
The du applet has the options "-s" and "-d depth". If
bb_getopt_ulflags finds -s, then -d is unset or if it finds -d
getopt32 finds -s, then -d is unset or if it finds -d
then -s is unset. (Note: busybox implements the GNU
"--max-depth" option as "-d".) To obtain this behavior, you
set bb_opt_complementally = "s-d:d-s". Only one flag value is
added to bb_getopt_ulflags's return value depending on the
set opt_complementary = "s-d:d-s". Only one flag value is
added to getopt32's return value depending on the
position of the options on the command line. If one of the
two options requires an argument pointer (":" in applet_opts
as in "d:") optarg is set accordingly.
char *smax_print_depth;
bb_opt_complementally = "s-d:d-s:x-x";
opt = bb_getopt_ulflags(argc, argv, "sd:x", &smax_print_depth);
opt_complementary = "s-d:d-s:x-x";
opt = getopt32(argc, argv, "sd:x", &smax_print_depth);
if (opt & 2)
max_print_depth = atoi(smax_print_depth);
if (opt & 4)
printf("Detected odd -x usage\n");
"-" A dash as the first char in a bb_opt_complementally group forces
"-" A dash as the first char in a opt_complementary group forces
all arguments to be treated as options, even if they have
no leading dashes. Next char in this case can't be a digit (0-9),
use ':' or end of line. For example:
bb_opt_complementally = "-:w-x:x-w";
bb_getopt_ulflags(argc, argv, "wx");
opt_complementary = "-:w-x:x-w";
getopt32(argc, argv, "wx");
Allows any arguments to be given without a dash (./program w x)
as well as with a dash (./program -x).
"-N" A dash as the first char in a bb_opt_complementally group followed
"-N" A dash as the first char in a opt_complementary group followed
by a single digit (0-9) means that at least N non-option
arguments must be present on the command line
@ -205,8 +202,8 @@ Special characters:
The cut applet must have only one type of list specified, so
-b, -c and -f are mutally exclusive and should raise an error
if specified together. In this case you must set
bb_opt_complementally = "b--cf:c--bf:f--bc". If two of the
mutually exclusive options are found, bb_getopt_ulflags's
opt_complementary = "b--cf:c--bf:f--bc". If two of the
mutually exclusive options are found, getopt32's
return value will have the error flag set (BB_GETOPT_ERROR) so
that we can check for it:
@ -216,35 +213,35 @@ Special characters:
"x--x" Variation of the above, it means that -x option should occur
at most once.
"?" A "?" as the first char in a bb_opt_complementally group means:
"?" A "?" as the first char in a opt_complementary group means:
if BB_GETOPT_ERROR is detected, don't return, call bb_show_usage
and exit instead. Next char after '?' can't be a digit.
"?N" A "?" as the first char in a bb_opt_complementally group followed
"?N" A "?" as the first char in a opt_complementary group followed
by a single digit (0-9) means that at most N arguments must be present
on the command line.
"::" A double colon after a char in bb_opt_complementally means that the
"::" A double colon after a char in opt_complementary means that the
option can occur multiple times. Each occurrence will be saved as
a llist_t element instead of char*.
For example:
The grep applet can have one or more "-e pattern" arguments.
In this case you should use bb_getopt_ulflags() as follows:
In this case you should use getopt32() as follows:
llist_t *patterns = NULL;
(this pointer must be initializated to NULL if the list is empty
as required by *llist_add_to(llist_t *old_head, char *new_item).)
bb_opt_complementally = "e::";
opt_complementary = "e::";
bb_getopt_ulflags(argc, argv, "e:", &patterns);
getopt32(argc, argv, "e:", &patterns);
$ grep -e user -e root /etc/passwd
root:x:0:0:root:/root:/bin/bash
user:x:500:500::/home/user:/bin/bash
"--" A double dash at the beginning of bb_opt_complementally means the
"--" A double dash at the beginning of opt_complementary means the
argv[1] string should always be treated as options, even if it isn't
prefixed with a "-". This is useful for special syntax in applets
such as "ar" and "tar":
@ -257,20 +254,20 @@ Special characters:
For example from "id" applet:
// Don't allow -n -r -rn -ug -rug -nug -rnug
bb_opt_complementally = "r?ug:n?ug:?u--g:g--u";
flags = bb_getopt_ulflags(argc, argv, "rnug");
opt_complementary = "r?ug:n?ug:?u--g:g--u";
flags = getopt32(argc, argv, "rnug");
This example allowed only:
$ id; id -u; id -g; id -ru; id -nu; id -rg; id -ng; id -rnu; id -rng
"X" A bb_opt_complementally group with just a single letter means
"X" A opt_complementary group with just a single letter means
that this option is required. If more than one such group exists,
at least one option is required to occur (not all of them).
For example from "start-stop-daemon" applet:
// Don't allow -KS -SK, but -S or -K is required
bb_opt_complementally = "K:S:?K--S:S--K";
flags = bb_getopt_ulflags(argc, argv, "KS...);
opt_complementary = "K:S:?K--S:S--K";
flags = getopt32(argc, argv, "KS...);
Don't forget to use ':'. For example, "?322-22-23X-x-a"
@ -280,45 +277,45 @@ Special characters:
a '-2' and after it a '-x' then error out.
*/
/* this should be bb_opt_complementary, but we'll just keep it as
bb_opt_complementally due to the Russian origins */
const char *bb_opt_complementally;
/* Code here assumes that 'unsigned' is at least 32 bits wide */
const char *opt_complementary;
typedef struct {
int opt;
int list_flg;
unsigned long switch_on;
unsigned long switch_off;
unsigned long incongruously;
unsigned long requires;
unsigned switch_on;
unsigned switch_off;
unsigned incongruously;
unsigned requires;
void **optarg; /* char **optarg or llist_t **optarg */
int *counter;
} t_complementally;
} t_complementary;
/* You can set bb_applet_long_options for parse called long options */
/* You can set applet_long_options for parse called long options */
#if ENABLE_GETOPT_LONG
static const struct option bb_default_long_options[] = {
/* { "help", 0, NULL, '?' }, */
{ 0, 0, 0, 0 }
};
const struct option *bb_applet_long_options = bb_default_long_options;
const struct option *applet_long_options = bb_default_long_options;
#endif
unsigned long
bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
uint32_t
getopt32(int argc, char **argv, const char *applet_opts, ...)
{
unsigned long flags = 0;
unsigned long requires = 0;
t_complementally complementally[sizeof(flags) * 8 + 1];
unsigned flags = 0;
unsigned requires = 0;
t_complementary complementary[sizeof(flags) * 8 + 1];
int c;
const unsigned char *s;
t_complementally *on_off;
t_complementary *on_off;
va_list p;
#if ENABLE_GETOPT_LONG
const struct option *l_o;
#endif
unsigned long trigger;
unsigned trigger;
char **pargv = NULL;
int min_arg = 0;
int max_arg = -1;
@ -332,8 +329,8 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
va_start(p, applet_opts);
c = 0;
on_off = complementally;
memset(on_off, 0, sizeof(complementally));
on_off = complementary;
memset(on_off, 0, sizeof(complementary));
/* skip GNU extension */
s = (const unsigned char *)applet_opts;
@ -355,10 +352,10 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
}
#if ENABLE_GETOPT_LONG
for (l_o = bb_applet_long_options; l_o->name; l_o++) {
for (l_o = applet_long_options; l_o->name; l_o++) {
if (l_o->flag)
continue;
for (on_off = complementally; on_off->opt != 0; on_off++)
for (on_off = complementary; on_off->opt != 0; on_off++)
if (on_off->opt == l_o->val)
break;
if (on_off->opt == 0) {
@ -372,9 +369,9 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
}
}
#endif /* ENABLE_GETOPT_LONG */
for (s = (const unsigned char *)bb_opt_complementally; s && *s; s++) {
t_complementally *pair;
unsigned long *pair_switch;
for (s = (const unsigned char *)opt_complementary; s && *s; s++) {
t_complementary *pair;
unsigned *pair_switch;
if (*s == ':')
continue;
@ -401,7 +398,7 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
}
continue;
}
for (on_off = complementally; on_off->opt; on_off++)
for (on_off = complementary; on_off->opt; on_off++)
if (on_off->opt == *s)
break;
if (c == ':' && s[2] == ':') {
@ -433,7 +430,7 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
else
pair_switch = &(pair->switch_off);
} else {
for (on_off = complementally; on_off->opt; on_off++)
for (on_off = complementary; on_off->opt; on_off++)
if (on_off->opt == *s) {
*pair_switch |= on_off->switch_on;
break;
@ -455,12 +452,12 @@ bb_getopt_ulflags(int argc, char **argv, const char *applet_opts, ...)
#endif
#if ENABLE_GETOPT_LONG
while ((c = getopt_long(argc, argv, applet_opts,
bb_applet_long_options, NULL)) >= 0) {
applet_long_options, NULL)) >= 0) {
#else
while ((c = getopt(argc, argv, applet_opts)) >= 0) {
#endif /* ENABLE_GETOPT_LONG */
loop_arg_is_opt:
for (on_off = complementally; on_off->opt != c; on_off++) {
for (on_off = complementary; on_off->opt != c; on_off++) {
/* c==0 if long opt have non NULL flag */
if (on_off->opt == 0 && c != 0)
bb_show_usage();
@ -505,7 +502,7 @@ loop_arg_is_opt:
free(argv[1]);
#endif
/* check depending requires for given options */
for (on_off = complementally; on_off->opt; on_off++) {
for (on_off = complementary; on_off->opt; on_off++) {
if (on_off->requires && (flags & on_off->switch_on) &&
(flags & on_off->requires) == 0)
bb_show_usage();

View File

@ -90,9 +90,9 @@ int addgroup_main(int argc, char **argv)
gid_t gid = 0;
/* check for min, max and missing args and exit on error */
bb_opt_complementally = "-1:?2:?";
opt_complementary = "-1:?2:?";
if (bb_getopt_ulflags(argc, argv, "g:", &group)) {
if (getopt32(argc, argv, "g:", &group)) {
gid = bb_xgetlarg(group, 10, 0, LONG_MAX);
}
/* move past the commandline options */

View File

@ -169,8 +169,8 @@ int adduser_main(int argc, char **argv)
pw.pw_dir = NULL;
/* check for min, max and missing args and exit on error */
bb_opt_complementally = "-1:?1:?";
flags = bb_getopt_ulflags(argc, argv, "h:g:s:G:DSH", &pw.pw_dir, &pw.pw_gecos, &pw.pw_shell, &usegroup);
opt_complementary = "-1:?1:?";
flags = getopt32(argc, argv, "h:g:s:G:DSH", &pw.pw_dir, &pw.pw_gecos, &pw.pw_shell, &usegroup);
/* got root? */
if(geteuid()) {

View File

@ -258,7 +258,7 @@ static void parse_args(int argc, char **argv, struct options *op)
{
char *ts;
op->flags = bb_getopt_ulflags(argc, argv, opt_string,
op->flags = getopt32(argc, argv, opt_string,
&(op->initstring), &fakehost, &(op->issue),
&(op->login), &ts);
if(op->flags & F_INITSTRING) {

View File

@ -222,7 +222,7 @@ int login_main(int argc, char **argv)
char username[USERNAME_SIZE];
const char *tmp;
int amroot;
unsigned long opt;
unsigned opt;
int count = 0;
struct passwd *pw;
char *opt_host = NULL;
@ -234,7 +234,7 @@ int login_main(int argc, char **argv)
signal(SIGALRM, alarm_handler);
alarm(TIMEOUT);
opt = bb_getopt_ulflags(argc, argv, "f:h:p", &opt_user, &opt_host);
opt = getopt32(argc, argv, "f:h:p", &opt_user, &opt_host);
if (opt & LOGIN_OPT_f) {
if (!amroot)
bb_error_msg_and_die("-f is for root only");

View File

@ -134,7 +134,7 @@ int passwd_main(int argc, char **argv)
OPT_delete = 0x8, /* -d - delete password */
OPT_lud = 0xe,
};
unsigned long opt;
unsigned opt;
char *opt_a;
int amroot;
char *cp;
@ -146,7 +146,7 @@ int passwd_main(int argc, char **argv)
amroot = (getuid() == 0);
openlog("passwd", LOG_PID | LOG_CONS | LOG_NOWAIT, LOG_AUTH);
opt = bb_getopt_ulflags(argc, argv, "a:lud", &opt_a);
opt = getopt32(argc, argv, "a:lud", &opt_a);
argc -= optind;
argv += optind;
if (opt & OPT_algo) algo = get_algo(opt_a); // -a

View File

@ -20,7 +20,7 @@ int su_main(int argc, char **argv)
const char *tty;
char *old_user;
flags = bb_getopt_ulflags(argc, argv, "mplc:s:", &opt_command, &opt_shell);
flags = getopt32(argc, argv, "mplc:s:", &opt_command, &opt_shell);
#define SU_OPT_mp (3)
#define SU_OPT_l (4)

View File

@ -46,7 +46,7 @@ int sulogin_main(int argc, char **argv)
logmode = LOGMODE_BOTH;
openlog(bb_applet_name, 0, LOG_AUTH);
if (bb_getopt_ulflags (argc, argv, "t:", &timeout_arg)) {
if (getopt32 (argc, argv, "t:", &timeout_arg)) {
if (safe_strtoi(timeout_arg, &timeout)) {
timeout = 0;
}

View File

@ -55,7 +55,7 @@ int vlock_main(int argc, char **argv)
bb_show_usage();
}
o_lock_all = bb_getopt_ulflags (argc, argv, "a");
o_lock_all = getopt32 (argc, argv, "a");
if((pw = getpwuid(getuid())) == NULL) {
bb_error_msg_and_die("Unknown uid %d", getuid());

View File

@ -47,14 +47,14 @@ int adjtimex_main(int argc, char **argv)
enum {
OPT_quiet = 0x1
};
unsigned long opt;
unsigned opt;
char *opt_o, *opt_f, *opt_p, *opt_t;
struct timex txc;
int i, ret, sep;
const char *descript;
txc.modes=0;
opt = bb_getopt_ulflags(argc, argv, "qo:f:p:t:",
opt = getopt32(argc, argv, "qo:f:p:t:",
&opt_o, &opt_f, &opt_p, &opt_t);
//if (opt & 0x1) // -q
if (opt & 0x2) { // -o

View File

@ -133,19 +133,19 @@ static void crondlog(const char *ctl, ...)
int crond_main(int ac, char **av)
{
unsigned long opt;
unsigned opt;
char *lopt, *Lopt, *copt;
#if ENABLE_DEBUG_CROND_OPTION
char *dopt;
bb_opt_complementally = "f-b:b-f:S-L:L-S:d-l";
opt_complementary = "f-b:b-f:S-L:L-S:d-l";
#else
bb_opt_complementally = "f-b:b-f:S-L:L-S";
opt_complementary = "f-b:b-f:S-L:L-S";
#endif
opterr = 0; /* disable getopt 'errors' message. */
opt = bb_getopt_ulflags(ac, av, "l:L:fbSc:"
opt = getopt32(ac, av, "l:L:fbSc:"
#if ENABLE_DEBUG_CROND_OPTION
"d:"
#endif

View File

@ -31,8 +31,8 @@ int eject_main(int argc, char **argv)
struct mntent *m;
int dev;
/*bb_opt_complementally = "t--T:T--t";*/
flags = bb_getopt_ulflags(argc, argv, "tT");
/*opt_complementary = "t--T:T--t";*/
flags = getopt32(argc, argv, "tT");
device = argv[optind] ? : DEFAULT_CDROM;
m = find_mount_point(device, bb_path_mtab_file);

View File

@ -575,18 +575,18 @@ static void identify(uint16_t *id_supplied)
/* check if we recognise the device type */
printf("\n");
if(!(val[GEN_CONFIG] & NOT_ATA))
if (!(val[GEN_CONFIG] & NOT_ATA))
{
dev = ATA_DEV;
printf("ATA device, with ");
}
else if(val[GEN_CONFIG]==CFA_SUPPORT_VAL)
else if (val[GEN_CONFIG]==CFA_SUPPORT_VAL)
{
dev = ATA_DEV;
like_std = 4;
printf("CompactFlash ATA device, with ");
}
else if(!(val[GEN_CONFIG] & NOT_ATAPI))
else if (!(val[GEN_CONFIG] & NOT_ATAPI))
{
dev = ATAPI_DEV;
eqpt = (val[GEN_CONFIG] & EQPT_TYPE) >> SHIFT_EQPT;
@ -609,9 +609,9 @@ static void identify(uint16_t *id_supplied)
(val[CONFIG]==PWRD_NID_VAL) || (val[CONFIG]==PWRD_ID_VAL) )
{
like_std = 5;
if((val[CONFIG]==STBY_NID_VAL) || (val[CONFIG]==STBY_ID_VAL))
if ((val[CONFIG]==STBY_NID_VAL) || (val[CONFIG]==STBY_ID_VAL))
printf("powers-up in standby; SET FEATURES subcmd spins-up.\n");
if(((val[CONFIG]==STBY_NID_VAL) || (val[CONFIG]==PWRD_NID_VAL)) && (val[GEN_CONFIG] & INCOMPLETE))
if (((val[CONFIG]==STBY_NID_VAL) || (val[CONFIG]==PWRD_NID_VAL)) && (val[GEN_CONFIG] & INCOMPLETE))
printf("\n\tWARNING: ID response incomplete.\n\tFollowing data may be incorrect.\n\n");
}
@ -629,9 +629,9 @@ static void identify(uint16_t *id_supplied)
{
if (val[MINOR] && (val[MINOR] <= MINOR_MAX))
{
if(like_std < 3) like_std = 3;
if (like_std < 3) like_std = 3;
std = actual_ver[val[MINOR]];
if(std) printf("\n\tUsed: %s ",minor_str[val[MINOR]]);
if (std) printf("\n\tUsed: %s ",minor_str[val[MINOR]]);
}
/* looks like when they up-issue the std, they obsolete one;
@ -652,17 +652,17 @@ static void identify(uint16_t *id_supplied)
like_std = ii;
kk = like_std >4 ? like_std-4: 0;
}
if(min_std > ii) min_std = ii;
if (min_std > ii) min_std = ii;
}
jj <<= 1;
}
if(like_std < 3) like_std = 3;
if (like_std < 3) like_std = 3;
}
/* Figure out what standard the device is using if it hasn't told
* us. If we know the std, check if the device is using any of
* the words from the next level up. It happens.
*/
if(like_std < std) like_std = std;
if (like_std < std) like_std = std;
if (((std == 5) || (!std && (like_std < 6))) &&
((((val[CMDS_SUPP_1] & VALID) == VALID_VAL) &&
@ -724,7 +724,7 @@ static void identify(uint16_t *id_supplied)
jj = val[CDR_MAJOR] >> 1;
for (ii = 1; ii <15; ii++)
{
if(jj & 0x0001) printf("-%u ", ii);
if (jj & 0x0001) printf("-%u ", ii);
jj >>= 1;
}
}
@ -743,7 +743,7 @@ static void identify(uint16_t *id_supplied)
jj = val[GEN_CONFIG] >> 1;
for (ii = 1; ii < 15; ii++)
{
if(jj & 0x0001) printf("\t%s\n",ata1_cfg_str[ii]);
if (jj & 0x0001) printf("\t%s\n",ata1_cfg_str[ii]);
jj >>=1;
}
}
@ -1018,7 +1018,7 @@ static void identify(uint16_t *id_supplied)
}
}
/* Removable Media Status Notification feature set */
if((val[RM_STAT] & RM_STAT_BITS) == RM_STAT_SUP)
if ((val[RM_STAT] & RM_STAT_BITS) == RM_STAT_SUP)
printf("\t%s supported\n", cmd_feat_str[27]);
@ -1196,7 +1196,7 @@ static void dump_identity(const struct hd_driveid *id)
}
printf("\n");
if(!(id->field_valid&1))
if (!(id->field_valid&1))
printf(" (maybe):");
printf(" CurCHS=%u/%u/%u, CurSects=%lu, LBA=%s",id->cur_cyls, id->cur_heads,
@ -1589,7 +1589,7 @@ static void interpret_xfermode(unsigned int xfermode)
static void print_flag(unsigned long flag, char *s, unsigned long value)
{
if(flag)
if (flag)
printf(" setting %s to %ld\n", s, value);
}
@ -2078,18 +2078,18 @@ static void parse_xfermode(int flag, unsigned long *get, unsigned long *set, int
}
/*------- getopt short options --------*/
static const char hdparm_options[]= "gfu::n::p:r::m::c::k::a::B:tTh"\
static const char hdparm_options[] = "gfu::n::p:r::m::c::k::a::B:tTh"
USE_FEATURE_HDPARM_GET_IDENTITY("iI")
USE_FEATURE_HDPARM_HDIO_GETSET_DMA("d::")
#ifdef HDIO_DRIVE_CMD
"S:D:P:X:K:A:L:W:CyYzZ"
"S:D:P:X:K:A:L:W:CyYzZ"
#endif
USE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF("U:")
#ifdef HDIO_GET_QDMA
#ifdef HDIO_SET_QDMA
"Q:"
"Q:"
#else
"Q"
"Q"
#endif
#endif
USE_FEATURE_HDPARM_HDIO_DRIVE_RESET("w")
@ -2154,8 +2154,8 @@ int hdparm_main(int argc, char **argv)
#if ENABLE_FEATURE_HDPARM_HDIO_SCAN_HWIF
if (c == 'R') {
parse_opts(NULL, &scan_hwif, &hwif_data, 0, INT_MAX);
hwif_ctrl = bb_xgetlarg((argv[optind]) ? argv[optind] : "", 10, 0, INT_MAX);
hwif_irq = bb_xgetlarg((argv[optind+1]) ? argv[optind+1] : "", 10, 0, INT_MAX);
hwif_ctrl = bb_xgetlarg((argv[optind]) ? argv[optind] : "", 10, 0, INT_MAX);
hwif_irq = bb_xgetlarg((argv[optind+1]) ? argv[optind+1] : "", 10, 0, INT_MAX);
/* Move past the 2 additional arguments */
argv += 2;
argc -= 2;
@ -2163,7 +2163,7 @@ int hdparm_main(int argc, char **argv)
#endif
}
/* When no flags are given (flagcount = 0), -acdgkmnru is assumed. */
if (!flagcount){
if (!flagcount) {
get_mult = get_io32bit = get_unmask = get_keep = get_readonly = get_readahead = get_geom = 1;
USE_FEATURE_HDPARM_HDIO_GETSET_DMA(get_dma = 1);
}

View File

@ -1102,7 +1102,7 @@ int less_main(int argc, char **argv) {
int keypress;
flags = bb_getopt_ulflags(argc, argv, "EMmN~");
flags = getopt32(argc, argv, "EMmN~");
argc -= optind;
argv += optind;

View File

@ -76,7 +76,7 @@ int makedevs_main(int argc, char **argv)
int linenum = 0;
int ret = EXIT_SUCCESS;
bb_getopt_ulflags(argc, argv, "d:", &line);
getopt32(argc, argv, "d:", &line);
if (line)
table = xfopen(line, "r");

View File

@ -13,7 +13,7 @@
int mountpoint_main(int argc, char **argv)
{
int opt = bb_getopt_ulflags(argc, argv, "qdx");
int opt = getopt32(argc, argv, "qdx");
#define OPT_q (1)
#define OPT_d (2)
#define OPT_x (4)

View File

@ -21,14 +21,14 @@
int strings_main(int argc, char **argv)
{
int n, c, i = 0, status = EXIT_SUCCESS;
unsigned long opt;
unsigned opt;
unsigned long count;
FILE *file = stdin;
char *string;
const char *fmt = "%s: ";
char *n_arg = "4";
opt = bb_getopt_ulflags(argc, argv, "afon:", &n_arg);
opt = getopt32(argc, argv, "afon:", &n_arg);
/* -a is our default behaviour */
argc -= optind;

View File

@ -25,11 +25,11 @@ static void watchdog_shutdown(int ATTRIBUTE_UNUSED unused)
int watchdog_main(int argc, char **argv)
{
unsigned long opts;
unsigned opts;
unsigned long timer_duration = 30; /* Userspace timer duration, in seconds */
char *t_arg;
opts = bb_getopt_ulflags(argc, argv, "Ft:", &t_arg);
opts = getopt32(argc, argv, "Ft:", &t_arg);
if (opts & OPT_TIMER)
timer_duration = bb_xgetlarg(t_arg, 10, 0, INT_MAX);

View File

@ -3983,7 +3983,7 @@ int insmod_main( int argc, char **argv)
struct utsname myuname;
/* Parse any options */
option_mask = bb_getopt_ulflags(argc, argv, OPTION_STR, &opt_o);
option_mask = getopt32(argc, argv, OPTION_STR, &opt_o);
if (option_mask & OPT_o) { // -o /* name the output module */
free(m_name);
m_name = xstrdup(opt_o);

View File

@ -902,8 +902,8 @@ int modprobe_main(int argc, char** argv)
int rc = EXIT_SUCCESS;
char *unused;
bb_opt_complementally = "?V-:q-v:v-q";
main_opts = bb_getopt_ulflags(argc, argv, "acdklnqrst:vVC:",
opt_complementary = "?V-:q-v:v-q";
main_opts = getopt32(argc, argv, "acdklnqrst:vVC:",
&unused, &unused);
if((main_opts & (DUMP_CONF_EXIT | LIST_ALL)))
return EXIT_SUCCESS;

View File

@ -44,7 +44,7 @@ int rmmod_main(int argc, char **argv)
unsigned int flags = O_NONBLOCK|O_EXCL;
/* Parse command line. */
n = bb_getopt_ulflags(argc, argv, "wfa");
n = getopt32(argc, argv, "wfa");
if((n & 1)) // --wait
flags &= ~O_NONBLOCK;
if((n & 2)) // --force

View File

@ -265,14 +265,14 @@ int arping_main(int argc, char **argv)
xsetuid(getuid());
{
unsigned long opt;
unsigned opt;
char *_count, *_timeout;
/* Dad also sets quit_on_reply.
* Advert also sets unsolicited.
*/
bb_opt_complementally = "Df:AU";
opt = bb_getopt_ulflags(argc, argv, "DUAqfbc:w:i:s:",
opt_complementary = "Df:AU";
opt = getopt32(argc, argv, "DUAqfbc:w:i:s:",
&_count, &_timeout, &device, &source);
cfg |= opt & 0x3f; /* set respective flags */
if (opt & 0x40) /* -c: count */

View File

@ -372,7 +372,7 @@ int dnsd_main(int argc, char **argv)
char *sttl=NULL, *sport=NULL;
if(argc > 1)
flags = bb_getopt_ulflags(argc, argv, "i:c:t:p:dv", &listen_interface, &fileconf, &sttl, &sport);
flags = getopt32(argc, argv, "i:c:t:p:dv", &listen_interface, &fileconf, &sttl, &sport);
if(sttl)
if(!(ttl = atol(sttl)))
bb_show_usage();

View File

@ -120,7 +120,7 @@ int ether_wake_main(int argc, char *argv[])
struct whereto_t whereto; /* who to wake up */
/* handle misc user options */
flags = bb_getopt_ulflags(argc, argv, "bi:p:", &ifname, &pass);
flags = getopt32(argc, argv, "bi:p:", &ifname, &pass);
if (optind == argc)
bb_show_usage();
if (pass)

View File

@ -228,7 +228,7 @@ int fakeidentd_main(int argc, char **argv)
FD_SET(0, &G.readfds);
/* handle -b <ip> parameter */
bb_getopt_ulflags(argc, argv, "b:", &bind_ip_address);
getopt32(argc, argv, "b:", &bind_ip_address);
/* handle optional REPLY STRING */
if (optind < argc)
G.identuser = argv[optind];

View File

@ -275,7 +275,7 @@ static const struct option ftpgetput_long_options[] = {
int ftpgetput_main(int argc, char **argv)
{
/* content-length of the file */
unsigned long opt;
unsigned opt;
char *port = "ftp";
/* socket to ftp server */
@ -305,9 +305,9 @@ int ftpgetput_main(int argc, char **argv)
* Decipher the command line
*/
if (ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS)
bb_applet_long_options = ftpgetput_long_options;
applet_long_options = ftpgetput_long_options;
opt = bb_getopt_ulflags(argc, argv, "cvu:p:P:", &server->user, &server->password, &port);
opt = getopt32(argc, argv, "cvu:p:P:", &server->user, &server->password, &port);
/* Process the non-option command line arguments */
if (argc - optind != 3) {

View File

@ -55,13 +55,13 @@ int hostname_main(int argc, char **argv)
};
char buf[256];
unsigned long opt;
unsigned opt;
char *hostname_str = NULL;
if (argc < 1)
bb_show_usage();
opt = bb_getopt_ulflags(argc, argv, "dfisF:", &hostname_str);
opt = getopt32(argc, argv, "dfisF:", &hostname_str);
/* Output in desired format */
if (opt & OPT_dfis) {

View File

@ -1909,7 +1909,7 @@ static const char httpd_opts[] = "c:d:h:"
int httpd_main(int argc, char *argv[])
{
unsigned long opt;
unsigned opt;
const char *home_httpd = home;
char *url_for_decode;
USE_FEATURE_HTTPD_ENCODE_URL_STR(const char *url_for_encode;)
@ -1932,7 +1932,7 @@ int httpd_main(int argc, char *argv[])
config->ContentLength = -1;
opt = bb_getopt_ulflags(argc, argv, httpd_opts,
opt = getopt32(argc, argv, httpd_opts,
&(config->configFile), &url_for_decode, &home_httpd
USE_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode)
USE_FEATURE_HTTPD_BASIC_AUTH(, &(config->realm))

View File

@ -1088,7 +1088,7 @@ int ifupdown_main(int argc, char **argv)
cmds = iface_down;
}
option_mask = bb_getopt_ulflags(argc, argv, OPTION_STR, &interfaces);
option_mask = getopt32(argc, argv, OPTION_STR, &interfaces);
if (argc - optind > 0) {
if (DO_ALL) bb_show_usage();
} else

View File

@ -1253,7 +1253,7 @@ inetd_main(int argc, char *argv[])
openlog(bb_applet_name, LOG_PID | LOG_NOWAIT, LOG_DAEMON);
opt = bb_getopt_ulflags(argc, argv, "R:f", &stoomany);
opt = getopt32(argc, argv, "R:f", &stoomany);
if(opt & 1) {
char *e;

View File

@ -90,9 +90,9 @@ int ipcalc_main(int argc, char **argv)
char *ipstr;
if (ENABLE_FEATURE_IPCALC_LONG_OPTIONS)
bb_applet_long_options = long_options;
applet_long_options = long_options;
mode = bb_getopt_ulflags(argc, argv, "mbn" USE_FEATURE_IPCALC_FANCY("phs"));
mode = getopt32(argc, argv, "mbn" USE_FEATURE_IPCALC_FANCY("phs"));
argc -= optind;
argv += optind;

View File

@ -65,7 +65,7 @@ int nameif_main(int argc, char **argv)
int if_index = 1;
mactable_t *ch;
if (1 & bb_getopt_ulflags(argc, argv, "sc:", &fname)) {
if (1 & getopt32(argc, argv, "sc:", &fname)) {
openlog(bb_applet_name, 0, LOG_LOCAL0);
logmode = LOGMODE_SYSLOG;
}

View File

@ -21,7 +21,7 @@ extern void displayroutes(int noresolve, int netstatfmt);
#define NETSTAT_CONNECTED 0x01
#define NETSTAT_LISTENING 0x02
#define NETSTAT_NUMERIC 0x04
/* Must match getopt_ulflags option string */
/* Must match getopt32 option string */
#define NETSTAT_TCP 0x10
#define NETSTAT_UDP 0x20
#define NETSTAT_RAW 0x40
@ -526,7 +526,7 @@ int netstat_main(int argc, char **argv)
OPT_extended = 0x4,
OPT_showroute = 0x100,
};
unsigned long opt;
unsigned opt;
#ifdef CONFIG_FEATURE_IPV6
int inet = 1;
int inet6 = 1;
@ -536,7 +536,7 @@ int netstat_main(int argc, char **argv)
#endif
/* Option string must match NETSTAT_xxx constants */
opt = bb_getopt_ulflags(argc, argv, "laentuwxr");
opt = getopt32(argc, argv, "laentuwxr");
if (opt & 0x1) { // -l
flags &= ~NETSTAT_CONNECTED;
flags |= NETSTAT_LISTENING;

View File

@ -647,7 +647,7 @@ static const char tbl_verb[] = /* 2nd byte matches RTACTION_* code */
int route_main(int argc, char **argv)
{
unsigned long opt;
unsigned opt;
int what;
char *family;
@ -662,7 +662,7 @@ int route_main(int argc, char **argv)
}
}
opt = bb_getopt_ulflags(argc, argv, "A:ne", &family);
opt = getopt32(argc, argv, "A:ne", &family);
if ((opt & ROUTE_OPT_A) && strcmp(family, "inet")) {
#ifdef CONFIG_FEATURE_IPV6

View File

@ -623,7 +623,7 @@ int telnet_main(int argc, char** argv)
bb_show_usage();
#ifdef CONFIG_FEATURE_TELNET_AUTOLOGIN
if (1 & bb_getopt_ulflags(argc, argv, "al:", &autologin))
if (1 & getopt32(argc, argv, "al:", &autologin))
autologin = getenv("USER");
if (optind < argc) {

View File

@ -362,7 +362,7 @@ free_session(struct tsession *ts)
int
telnetd_main(int argc, char **argv)
{
unsigned long opt;
unsigned opt;
fd_set rdfdset, wrfdset;
int selret;
#ifndef CONFIG_FEATURE_TELNETD_INETD
@ -387,7 +387,7 @@ telnetd_main(int argc, char **argv)
openlog(bb_applet_name, 0, LOG_USER);
logmode = LOGMODE_SYSLOG;
opt = bb_getopt_ulflags(argc, argv, "f:l:" USE_FEATURE_TELNETD_INETD("p:b:"),
opt = getopt32(argc, argv, "f:l:" USE_FEATURE_TELNETD_INETD("p:b:"),
&issuefile, &loginpath
SKIP_FEATURE_TELNETD_INETD(, &opt_portnbr, &opt_bindaddr));
//if (opt & 1) // -f

View File

@ -497,13 +497,13 @@ int tftp_main(int argc, char **argv)
#endif
#if defined(CONFIG_FEATURE_TFTP_GET) && defined(CONFIG_FEATURE_TFTP_PUT)
bb_opt_complementally = GET_COMPL PUT_COMPL ":?g--p:p--g";
opt_complementary = GET_COMPL PUT_COMPL ":?g--p:p--g";
#elif defined(CONFIG_FEATURE_TFTP_GET) || defined(CONFIG_FEATURE_TFTP_PUT)
bb_opt_complementally = GET_COMPL PUT_COMPL;
opt_complementary = GET_COMPL PUT_COMPL;
#endif
cmd = bb_getopt_ulflags(argc, argv, GET PUT "l:r:" BS,
cmd = getopt32(argc, argv, GET PUT "l:r:" BS,
&localfile, &remotefile BS_ARG);
cmd &= (tftp_cmd_get | tftp_cmd_put);

View File

@ -949,12 +949,12 @@ traceroute_main(int argc, char *argv[])
opterr = 0;
#ifdef CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE
bb_opt_complementally = "x-x:g::";
opt_complementary = "x-x:g::";
#else
bb_opt_complementally = "x-x";
opt_complementary = "x-x";
#endif
op = bb_getopt_ulflags(argc, argv, "FIlnrdvxt:i:m:p:q:s:w:z:f:"
op = getopt32(argc, argv, "FIlnrdvxt:i:m:p:q:s:w:z:f:"
#define USAGE_OP_DONT_FRAGMNT (1<<0) /* F */
#define USAGE_OP_USE_ICMP (1<<1) /* I */
#define USAGE_OP_TTL_FLAG (1<<2) /* l */

View File

@ -124,7 +124,7 @@ static const struct option wget_long_options[] = {
int wget_main(int argc, char **argv)
{
int n, try=5, status;
unsigned long opt;
unsigned opt;
int port;
char *proxy = 0;
char *dir_prefix=NULL;
@ -148,11 +148,11 @@ int wget_main(int argc, char **argv)
/*
* Crack command line.
*/
bb_opt_complementally = "-1:\203::";
opt_complementary = "-1:\203::";
#if ENABLE_FEATURE_WGET_LONG_OPTIONS
bb_applet_long_options = wget_long_options;
applet_long_options = wget_long_options;
#endif
opt = bb_getopt_ulflags(argc, argv, "cq\213O:\203:P:Y:U:",
opt = getopt32(argc, argv, "cq\213O:\203:P:Y:U:",
&fname_out, &headers_llist,
&dir_prefix, &proxy_flag, &user_agent);
if (strcmp(proxy_flag, "off") == 0) {

View File

@ -75,7 +75,7 @@ enum {
#define VDBG(fmt,args...) \
do { } while (0)
static unsigned long opts;
static unsigned opts;
#define FOREGROUND (opts & 1)
#define QUIT (opts & 2)
@ -217,8 +217,8 @@ int zcip_main(int argc, char *argv[])
// parse commandline: prog [options] ifname script
char *r_opt;
bb_opt_complementally = "vv:vf"; // -v accumulates and implies -f
opts = bb_getopt_ulflags(argc, argv, "fqr:v", &r_opt, &verbose);
opt_complementary = "vv:vf"; // -v accumulates and implies -f
opts = getopt32(argc, argv, "fqr:v", &r_opt, &verbose);
if (!FOREGROUND) {
/* Do it early, before all bb_xx_msg calls */
logmode = LOGMODE_SYSLOG;

View File

@ -39,11 +39,11 @@ int pidof_main(int argc, char **argv)
unsigned long int opt;
#if ENABLE_FEATURE_PIDOF_OMIT
llist_t *omits = NULL; /* list of pids to omit */
bb_opt_complementally = _OMIT_COMPL("o::");
opt_complementary = _OMIT_COMPL("o::");
#endif
/* do unconditional option parsing */
opt = bb_getopt_ulflags(argc, argv,
opt = getopt32(argc, argv,
_SINGLE_COMPL("s") _OMIT_COMPL("o:")
_OMIT(&omits));

Some files were not shown because too many files have changed in this diff Show More