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.
diff --git a/archival/ar.c b/archival/ar.c
index e10bf7c..06a879b 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -41,7 +41,7 @@
 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 @@
 	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;
diff --git a/archival/bunzip2.c b/archival/bunzip2.c
index 9d62366..faf997b 100644
--- a/archival/bunzip2.c
+++ b/archival/bunzip2.c
@@ -16,10 +16,10 @@
 {
 	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];
diff --git a/archival/cpio.c b/archival/cpio.c
index 48b688e..d0d3288 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -30,7 +30,7 @@
 {
 	archive_handle_t *archive_handle;
 	char *cpio_filename = NULL;
-	unsigned long opt;
+	unsigned opt;
 
 	/* Initialise */
 	archive_handle = init_handle();
@@ -38,7 +38,7 @@
 	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) {
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index ce65e21..80a5f32 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -18,7 +18,7 @@
 	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 @@
 	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;
diff --git a/archival/gunzip.c b/archival/gunzip.c
index 1b49686..1cde08b 100644
--- a/archival/gunzip.c
+++ b/archival/gunzip.c
@@ -40,9 +40,9 @@
 {
 	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;
diff --git a/archival/gzip.c b/archival/gzip.c
index 2fc9f76..ef3724c 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -1134,14 +1134,14 @@
 		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 @@
 	//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);
 	}
diff --git a/archival/tar.c b/archival/tar.c
index bfee638..3775598 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -688,7 +688,7 @@
 	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 @@
 	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
diff --git a/archival/uncompress.c b/archival/uncompress.c
index 91568e4..d1b0d2c 100644
--- a/archival/uncompress.c
+++ b/archival/uncompress.c
@@ -16,7 +16,7 @@
 	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++];
diff --git a/archival/unlzma.c b/archival/unlzma.c
index b87a3fe..20891e3 100644
--- a/archival/unlzma.c
+++ b/archival/unlzma.c
@@ -19,10 +19,10 @@
 {
 	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];
diff --git a/console-tools/setconsole.c b/console-tools/setconsole.c
index 71fe928..ef81f29 100644
--- a/console-tools/setconsole.c
+++ b/console-tools/setconsole.c
@@ -24,9 +24,9 @@
 	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();
diff --git a/coreutils/cal.c b/coreutils/cal.c
index 8996aa8..ef91412 100644
--- a/coreutils/cal.c
+++ b/coreutils/cal.c
@@ -91,7 +91,7 @@
 	setlocale(LC_TIME, "");
 #endif
 
-	flags = bb_getopt_ulflags(argc, argv, "jy");
+	flags = getopt32(argc, argv, "jy");
 
 	julian = flags & 1;
 
diff --git a/coreutils/cat.c b/coreutils/cat.c
index 37237ec..f3baf0a 100644
--- a/coreutils/cat.c
+++ b/coreutils/cat.c
@@ -18,7 +18,7 @@
 	FILE *f;
 	int retval = EXIT_SUCCESS;
 
-	bb_getopt_ulflags(argc, argv, "u");
+	getopt32(argc, argv, "u");
 
 	argv += optind;
 	if (!*argv) {
diff --git a/coreutils/catv.c b/coreutils/catv.c
index f8229c2..55656b4 100644
--- a/coreutils/catv.c
+++ b/coreutils/catv.c
@@ -17,7 +17,7 @@
 	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)
diff --git a/coreutils/chgrp.c b/coreutils/chgrp.c
index 5064f2d..e62bd16 100644
--- a/coreutils/chgrp.c
+++ b/coreutils/chgrp.c
@@ -31,7 +31,7 @@
 	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();
diff --git a/coreutils/chown.c b/coreutils/chown.c
index bb379ac..b73f66a 100644
--- a/coreutils/chown.c
+++ b/coreutils/chown.c
@@ -43,7 +43,7 @@
 	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;
 
diff --git a/coreutils/cmp.c b/coreutils/cmp.c
index d0d9769..07858c6 100644
--- a/coreutils/cmp.c
+++ b/coreutils/cmp.c
@@ -54,7 +54,7 @@
 
 	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))
diff --git a/coreutils/comm.c b/coreutils/comm.c
index 7524a7b..91f0177 100644
--- a/coreutils/comm.c
+++ b/coreutils/comm.c
@@ -112,7 +112,7 @@
 {
 	unsigned long flags;
 
-	flags = bb_getopt_ulflags(argc, argv, "123");
+	flags = getopt32(argc, argv, "123");
 
 	if (optind + 2 != argc)
 		bb_show_usage();
diff --git a/coreutils/cp.c b/coreutils/cp.c
index 85086aa..fabfe58 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -39,7 +39,7 @@
 	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);
diff --git a/coreutils/cut.c b/coreutils/cut.c
index d88a891..30dbc02 100644
--- a/coreutils/cut.c
+++ b/coreutils/cut.c
@@ -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 @@
 {
 	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");
diff --git a/coreutils/date.c b/coreutils/date.c
index 2a82e04..74e9966 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -42,7 +42,7 @@
 {
 	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 @@
 	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));
diff --git a/coreutils/df.c b/coreutils/df.c
index 17ce634..94ead32 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -41,7 +41,7 @@
 	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 @@
 	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 @@
 				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",
diff --git a/coreutils/diff.c b/coreutils/diff.c
index 3c409b2..2edcd96 100644
--- a/coreutils/diff.c
+++ b/coreutils/diff.c
@@ -1164,9 +1164,9 @@
 	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) {
diff --git a/coreutils/dos2unix.c b/coreutils/dos2unix.c
index 19f1a32..a8038a6 100644
--- a/coreutils/dos2unix.c
+++ b/coreutils/dos2unix.c
@@ -93,11 +93,11 @@
 		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.  */
diff --git a/coreutils/du.c b/coreutils/du.c
index 3cc9355..1452e58 100644
--- a/coreutils/du.c
+++ b/coreutils/du.c
@@ -153,7 +153,7 @@
 	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 @@
 	 * 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 @@
 			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 */
diff --git a/coreutils/env.c b/coreutils/env.c
index 2af15a3..d03318f 100644
--- a/coreutils/env.c
+++ b/coreutils/env.c
@@ -46,16 +46,16 @@
 	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]) {
diff --git a/coreutils/fold.c b/coreutils/fold.c
index aff7bb1..3b5be64 100644
--- a/coreutils/fold.c
+++ b/coreutils/fold.c
@@ -60,7 +60,7 @@
 		}
 	}
 
-	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);
 
diff --git a/coreutils/head.c b/coreutils/head.c
index 50694bf..7d5f219 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -60,7 +60,7 @@
 	}
 #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
diff --git a/coreutils/id.c b/coreutils/id.c
index 1bedff3..dd825ab 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -50,8 +50,8 @@
 
 	/* 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();
diff --git a/coreutils/install.c b/coreutils/install.c
index d3d6a58..2178d43 100644
--- a/coreutils/install.c
+++ b/coreutils/install.c
@@ -45,11 +45,11 @@
 	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) {
diff --git a/coreutils/libcoreutils/getopt_mk_fifo_nod.c b/coreutils/libcoreutils/getopt_mk_fifo_nod.c
index d1f5b1e..3a3d341 100644
--- a/coreutils/libcoreutils/getopt_mk_fifo_nod.c
+++ b/coreutils/libcoreutils/getopt_mk_fifo_nod.c
@@ -31,7 +31,7 @@
 	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);
diff --git a/coreutils/ln.c b/coreutils/ln.c
index df18358..cd6e470 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -30,7 +30,7 @@
 	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();
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 0099f18..8ba4ab7 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -877,7 +877,7 @@
 	struct dnode **dnp;
 	struct dnode *dn;
 	struct dnode *cur;
-	long opt;
+	unsigned opt;
 	int nfiles = 0;
 	int dnfiles;
 	int dndirs;
@@ -904,12 +904,12 @@
 #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 @@
 		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
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c
index c10fac5..a99e458 100644
--- a/coreutils/md5_sha1_sum.c
+++ b/coreutils/md5_sha1_sum.c
@@ -91,7 +91,7 @@
 		: 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)) {
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c
index c09c72f..3fe55c3 100644
--- a/coreutils/mkdir.c
+++ b/coreutils/mkdir.c
@@ -34,13 +34,13 @@
 	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)) {
diff --git a/coreutils/mv.c b/coreutils/mv.c
index 274aecb..770b424 100644
--- a/coreutils/mv.c
+++ b/coreutils/mv.c
@@ -45,10 +45,10 @@
 	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();
 	}
diff --git a/coreutils/rm.c b/coreutils/rm.c
index c787ae3..490694a 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -22,10 +22,10 @@
 {
 	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)
diff --git a/coreutils/rmdir.c b/coreutils/rmdir.c
index e1ed34c..05ea0e9 100644
--- a/coreutils/rmdir.c
+++ b/coreutils/rmdir.c
@@ -22,7 +22,7 @@
 	int do_dot;
 	char *path;
 
-	flags = bb_getopt_ulflags(argc, argv, "p");
+	flags = getopt32(argc, argv, "p");
 
 	argv += optind;
 
diff --git a/coreutils/stat.c b/coreutils/stat.c
index 8e01218..b9fd42f 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -516,7 +516,7 @@
 	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)
 	);
 
diff --git a/coreutils/sum.c b/coreutils/sum.c
index 99d477f..61ca582 100644
--- a/coreutils/sum.c
+++ b/coreutils/sum.c
@@ -136,7 +136,7 @@
 	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)
diff --git a/coreutils/tee.c b/coreutils/tee.c
index 1f59f03..a194153 100644
--- a/coreutils/tee.c
+++ b/coreutils/tee.c
@@ -28,7 +28,7 @@
 	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... */
 
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 76c05d8..e1af7d0 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -32,7 +32,7 @@
 	int flags;
 	int status = EXIT_SUCCESS;
 
-	flags = bb_getopt_ulflags(argc, argv, "c");
+	flags = getopt32(argc, argv, "c");
 
 	argv += optind;
 
diff --git a/coreutils/tty.c b/coreutils/tty.c
index eb8c3dd..579e6f7 100644
--- a/coreutils/tty.c
+++ b/coreutils/tty.c
@@ -23,7 +23,7 @@
 
 	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);
diff --git a/coreutils/uname.c b/coreutils/uname.c
index da12c3a..575fb52 100644
--- a/coreutils/uname.c
+++ b/coreutils/uname.c
@@ -63,7 +63,7 @@
 	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();
diff --git a/coreutils/uudecode.c b/coreutils/uudecode.c
index 21ebce3..921d29a 100644
--- a/coreutils/uudecode.c
+++ b/coreutils/uudecode.c
@@ -129,7 +129,7 @@
 	char *outname = NULL;
 	char *line;
 
-	bb_getopt_ulflags(argc, argv, "o:", &outname);
+	getopt32(argc, argv, "o:", &outname);
 
 	if (optind == argc) {
 		src_stream = stdin;
diff --git a/coreutils/uuencode.c b/coreutils/uuencode.c
index 1a8882f..5853836 100644
--- a/coreutils/uuencode.c
+++ b/coreutils/uuencode.c
@@ -27,7 +27,7 @@
 	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;
 	}
 
diff --git a/coreutils/wc.c b/coreutils/wc.c
index 6ddac4d..359d9fd 100644
--- a/coreutils/wc.c
+++ b/coreutils/wc.c
@@ -87,7 +87,7 @@
 	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);
diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c
index 495a2ea..546e030 100644
--- a/debianutils/mktemp.c
+++ b/debianutils/mktemp.c
@@ -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();
diff --git a/debianutils/readlink.c b/debianutils/readlink.c
index bfe0db6..0d5ad94 100644
--- a/debianutils/readlink.c
+++ b/debianutils/readlink.c
@@ -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();
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c
index dcff1dd..57f42d8 100644
--- a/debianutils/start_stop_daemon.c
+++ b/debianutils/start_stop_daemon.c
@@ -227,7 +227,7 @@
 
 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 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:"
diff --git a/docs/busybox.net/FAQ.html b/docs/busybox.net/FAQ.html
index fee2074..af20366 100644
--- a/docs/busybox.net/FAQ.html
+++ b/docs/busybox.net/FAQ.html
@@ -567,7 +567,7 @@
 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>
diff --git a/e2fsprogs/lsattr.c b/e2fsprogs/lsattr.c
index 5c20d25..e76f8d9 100644
--- a/e2fsprogs/lsattr.c
+++ b/e2fsprogs/lsattr.c
@@ -124,7 +124,7 @@
 {
 	int i;
 
-	flags = bb_getopt_ulflags(argc, argv, "Radlv");
+	flags = getopt32(argc, argv, "Radlv");
 
 	if (optind > argc - 1)
 		lsattr_args(".");
diff --git a/editors/awk.c b/editors/awk.c
index b46f25c..c1b56d9 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2634,7 +2634,7 @@
 
 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 @@
 		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
diff --git a/editors/patch.c b/editors/patch.c
index a710d82..c18659e 100644
--- a/editors/patch.c
+++ b/editors/patch.c
@@ -85,7 +85,7 @@
 
 	{
 		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) {
diff --git a/editors/sed.c b/editors/sed.c
index 2016652..7dba8b4 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -1109,7 +1109,7 @@
 
 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 @@
 
 	/* 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 @@
 	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] */
diff --git a/findutils/grep.c b/findutils/grep.c
index 5659a7d..35e6aff 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -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 @@
 	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 @@
 		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 */
diff --git a/findutils/xargs.c b/findutils/xargs.c
index b6a154f..2783823 100644
--- a/findutils/xargs.c
+++ b/findutils/xargs.c
@@ -399,7 +399,7 @@
 	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 @@
 #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);
diff --git a/include/libbb.h b/include/libbb.h
index c0de921..4e96ea4 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -207,9 +207,9 @@
 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 @@
 
 #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
diff --git a/init/halt.c b/init/halt.c
index 7bd2789..d796a4a 100644
--- a/init/halt.c
+++ b/init/halt.c
@@ -34,7 +34,7 @@
 	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();
 
diff --git a/libbb/Makefile.in b/libbb/Makefile.in
index f731e6e..ef5c6b9 100644
--- a/libbb/Makefile.in
+++ b/libbb/Makefile.in
@@ -30,7 +30,7 @@
 	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
diff --git a/libbb/getopt_ulflags.c b/libbb/getopt32.c
similarity index 77%
rename from libbb/getopt_ulflags.c
rename to libbb/getopt32.c
index 9d27c1f..e084965 100644
--- a/libbb/getopt_ulflags.c
+++ b/libbb/getopt32.c
@@ -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 @@
         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 @@
         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 @@
         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 @@
         	{ "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 @@
         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 @@
         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 @@
 
         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 @@
 
         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 @@
         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 @@
  "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 @@
         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 @@
         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 @@
 	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 @@
 	}
 
 #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 @@
 		}
 	}
 #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 @@
 			}
 			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 @@
 				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 @@
 #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 @@
 		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();
diff --git a/loginutils/addgroup.c b/loginutils/addgroup.c
index 13f29bf..236dc10 100644
--- a/loginutils/addgroup.c
+++ b/loginutils/addgroup.c
@@ -90,9 +90,9 @@
 	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 */
diff --git a/loginutils/adduser.c b/loginutils/adduser.c
index 936e48e..8101b20 100644
--- a/loginutils/adduser.c
+++ b/loginutils/adduser.c
@@ -169,8 +169,8 @@
 	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()) {
diff --git a/loginutils/getty.c b/loginutils/getty.c
index 22601c7..6730fa8 100644
--- a/loginutils/getty.c
+++ b/loginutils/getty.c
@@ -258,7 +258,7 @@
 {
 	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) {
diff --git a/loginutils/login.c b/loginutils/login.c
index 1b13fa0..1f392c1 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -222,7 +222,7 @@
 	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 @@
 	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");
diff --git a/loginutils/passwd.c b/loginutils/passwd.c
index 211a49e..54f35d2 100644
--- a/loginutils/passwd.c
+++ b/loginutils/passwd.c
@@ -134,7 +134,7 @@
 		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 @@
 
 	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
diff --git a/loginutils/su.c b/loginutils/su.c
index c51359a..7894201 100644
--- a/loginutils/su.c
+++ b/loginutils/su.c
@@ -20,7 +20,7 @@
 	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)
 
diff --git a/loginutils/sulogin.c b/loginutils/sulogin.c
index 8cfb64e..6edd258 100644
--- a/loginutils/sulogin.c
+++ b/loginutils/sulogin.c
@@ -46,7 +46,7 @@
 	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;
 		}
diff --git a/loginutils/vlock.c b/loginutils/vlock.c
index d472c09..02d1ea7 100644
--- a/loginutils/vlock.c
+++ b/loginutils/vlock.c
@@ -55,7 +55,7 @@
 		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());
diff --git a/miscutils/adjtimex.c b/miscutils/adjtimex.c
index 9662bbe..47af1a5 100644
--- a/miscutils/adjtimex.c
+++ b/miscutils/adjtimex.c
@@ -47,14 +47,14 @@
 	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
diff --git a/miscutils/crond.c b/miscutils/crond.c
index 3e12fed..4f25486 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -133,19 +133,19 @@
 
 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
diff --git a/miscutils/eject.c b/miscutils/eject.c
index 272d959..d49396b 100644
--- a/miscutils/eject.c
+++ b/miscutils/eject.c
@@ -31,8 +31,8 @@
 	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);
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index b901423..6c46f6a 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -575,18 +575,18 @@
 
 	/* 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 @@
 	   (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 @@
 	{
 		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 @@
 						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 @@
 			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 @@
 		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 @@
 		}
 	}
 	/* 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 @@
 	}
 	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 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 @@
 }
 
 /*------- 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 @@
 #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 @@
 #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);
 	}
diff --git a/miscutils/less.c b/miscutils/less.c
index bde2a45..63389dc 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -1102,7 +1102,7 @@
 
 	int keypress;
 
-	flags = bb_getopt_ulflags(argc, argv, "EMmN~");
+	flags = getopt32(argc, argv, "EMmN~");
 
 	argc -= optind;
 	argv += optind;
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c
index 66b4ce0..4619e4d 100644
--- a/miscutils/makedevs.c
+++ b/miscutils/makedevs.c
@@ -76,7 +76,7 @@
 	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");
 
diff --git a/miscutils/mountpoint.c b/miscutils/mountpoint.c
index 3e5fb4b..dbc8fe0 100644
--- a/miscutils/mountpoint.c
+++ b/miscutils/mountpoint.c
@@ -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)
diff --git a/miscutils/strings.c b/miscutils/strings.c
index e9f335e..36bcf8b 100644
--- a/miscutils/strings.c
+++ b/miscutils/strings.c
@@ -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;
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
index ebbab2d..ae51aba 100644
--- a/miscutils/watchdog.c
+++ b/miscutils/watchdog.c
@@ -25,11 +25,11 @@
 
 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);
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 314e873..0554def 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -3983,7 +3983,7 @@
 	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);
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index f51de56..b629390 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -902,8 +902,8 @@
 	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;
diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index f87fb5e..ce239a2 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -44,7 +44,7 @@
 	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
diff --git a/networking/arping.c b/networking/arping.c
index f84c8a7..1ff6f90 100644
--- a/networking/arping.c
+++ b/networking/arping.c
@@ -265,14 +265,14 @@
 	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 */
diff --git a/networking/dnsd.c b/networking/dnsd.c
index b0e74d7..ab37047 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -372,7 +372,7 @@
 	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();
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index f4ca889..294a9dd 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -120,7 +120,7 @@
 	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)
diff --git a/networking/fakeidentd.c b/networking/fakeidentd.c
index 2d690ed..6070e5f 100644
--- a/networking/fakeidentd.c
+++ b/networking/fakeidentd.c
@@ -228,7 +228,7 @@
 	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];
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 453cce5..25b7f14 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -275,7 +275,7 @@
 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 @@
 	 * 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) {
diff --git a/networking/hostname.c b/networking/hostname.c
index 2850bd5..4fe28d7 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -55,13 +55,13 @@
 	};
 
 	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) {
diff --git a/networking/httpd.c b/networking/httpd.c
index e533594..ac9eac6 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1909,7 +1909,7 @@
 
 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 @@
 
 	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))
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 9dd1c99..f342875 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -1088,7 +1088,7 @@
 		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
diff --git a/networking/inetd.c b/networking/inetd.c
index 8c8843b..350f91d 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -1253,7 +1253,7 @@
 
 	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;
 
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index aafb786..576dfc8 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -90,9 +90,9 @@
 	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;
diff --git a/networking/nameif.c b/networking/nameif.c
index 3fa2572..146ecce 100644
--- a/networking/nameif.c
+++ b/networking/nameif.c
@@ -65,7 +65,7 @@
 	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;
 	}
diff --git a/networking/netstat.c b/networking/netstat.c
index cadcb0e..bc5c619 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -21,7 +21,7 @@
 #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 @@
 		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 @@
 #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;
diff --git a/networking/route.c b/networking/route.c
index 5fd8886..2e6e017 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -647,7 +647,7 @@
 
 int route_main(int argc, char **argv)
 {
-	unsigned long opt;
+	unsigned opt;
 	int what;
 	char *family;
 
@@ -662,7 +662,7 @@
 		}
 	}
 
-	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
diff --git a/networking/telnet.c b/networking/telnet.c
index fd0f84d..cd4c33a 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -623,7 +623,7 @@
 		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) {
diff --git a/networking/telnetd.c b/networking/telnetd.c
index 9fa8faf..808d4be 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -362,7 +362,7 @@
 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 @@
 	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
diff --git a/networking/tftp.c b/networking/tftp.c
index 42fd9d2..5f0c190 100644
--- a/networking/tftp.c
+++ b/networking/tftp.c
@@ -497,13 +497,13 @@
 #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);
diff --git a/networking/traceroute.c b/networking/traceroute.c
index e7e1311..042cbe3 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -949,12 +949,12 @@
 
 	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  */
diff --git a/networking/wget.c b/networking/wget.c
index bbe1bba..0054a98 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -124,7 +124,7 @@
 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 @@
 	/*
 	 * 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) {
diff --git a/networking/zcip.c b/networking/zcip.c
index c6b0d2d..d9c1adf 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -75,7 +75,7 @@
 #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 @@
 
 	// 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;
diff --git a/procps/pidof.c b/procps/pidof.c
index c686245..e6c9548 100644
--- a/procps/pidof.c
+++ b/procps/pidof.c
@@ -39,11 +39,11 @@
 	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));
 
diff --git a/procps/ps.c b/procps/ps.c
index 95502b2..0452a50 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -23,7 +23,7 @@
 	int terminal_width;
 	int w_count = 0;
 
-	bb_opt_complementally = "-:ww";
+	opt_complementary = "-:ww";
 #else
 # define terminal_width 79
 #endif
@@ -31,11 +31,11 @@
 #if ENABLE_FEATURE_PS_WIDE || ENABLE_SELINUX
 	/* handle arguments */
 #if ENABLE_FEATURE_PS_WIDE && ENABLE_SELINUX
-	i = bb_getopt_ulflags(argc, argv, "wc", &w_count);
+	i = getopt32(argc, argv, "wc", &w_count);
 #elif ENABLE_FEATURE_PS_WIDE && !ENABLE_SELINUX
-	bb_getopt_ulflags(argc, argv, "w", &w_count);
+	getopt32(argc, argv, "w", &w_count);
 #else /* !ENABLE_FEATURE_PS_WIDE && ENABLE_SELINUX */
-	i = bb_getopt_ulflags(argc, argv, "c");
+	i = getopt32(argc, argv, "c");
 #endif
 #if ENABLE_FEATURE_PS_WIDE
 	/* if w is given once, GNU ps sets the width to 132,
diff --git a/procps/top.c b/procps/top.c
index be8ac19..ebfbcb8 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -397,8 +397,8 @@
 
 	/* do normal option parsing */
 	interval = 5;
-	bb_opt_complementally = "-";
-	option_mask = bb_getopt_ulflags(argc, argv, "d:n:b", 
+	opt_complementary = "-";
+	option_mask = getopt32(argc, argv, "d:n:b", 
 		&sinterval, &siterations);
 	if (option_mask & 0x1) interval = atoi(sinterval); // -d
 	if (option_mask & 0x2) iterations = atoi(siterations); // -n
diff --git a/runit/chpst.c b/runit/chpst.c
index 11ee3d7..ced2838 100644
--- a/runit/chpst.c
+++ b/runit/chpst.c
@@ -238,7 +238,7 @@
 
 	{
 		char *m,*d,*o,*p,*f,*c,*r,*t,*n;
-		option_mask = bb_getopt_ulflags(argc, argv, "u:U:e:m:d:o:p:f:c:r:t:/:n:vP012",
+		option_mask = getopt32(argc, argv, "u:U:e:m:d:o:p:f:c:r:t:/:n:vP012",
 				&set_user,&env_user,&env_dir,
 				&m,&d,&o,&p,&f,&c,&r,&t,&root,&n);
 		// if (option_mask & 0x1) // -u
@@ -324,7 +324,7 @@
 static void softlimit(int argc, char **argv)
 {
 	char *a,*c,*d,*f,*l,*m,*o,*p,*r,*s,*t;
-	option_mask = bb_getopt_ulflags(argc, argv, "a:c:d:f:l:m:o:p:r:s:t:",
+	option_mask = getopt32(argc, argv, "a:c:d:f:l:m:o:p:r:s:t:",
 			&a,&c,&d,&f,&l,&m,&o,&p,&r,&s,&t);
 	if (option_mask & 0x001) limita = bb_xgetularg10(a); // -a
 	if (option_mask & 0x002) limitc = bb_xgetularg10(c); // -c
diff --git a/shell/bbsh.c b/shell/bbsh.c
index 2194bda..77e186d 100644
--- a/shell/bbsh.c
+++ b/shell/bbsh.c
@@ -203,7 +203,7 @@
 	char *command=NULL;
 	FILE *f;
 
-	bb_getopt_ulflags(argc, argv, "c:", &command);
+	getopt32(argc, argv, "c:", &command);
 
 	f = argv[optind] ? xfopen(argv[optind],"r") : NULL;
 	if (command) handle(command);
diff --git a/shell/lash.c b/shell/lash.c
index fd6bea1..9c862a1 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -1503,7 +1503,7 @@
 
 int lash_main(int argc_l, char **argv_l)
 {
-	unsigned long opt;
+	unsigned opt;
 	FILE *input = stdin;
 	argc = argc_l;
 	argv = argv_l;
@@ -1527,7 +1527,7 @@
 		}
 	}
 
-	opt = bb_getopt_ulflags(argc_l, argv_l, "+ic:", &local_pending_command);
+	opt = getopt32(argc_l, argv_l, "+ic:", &local_pending_command);
 #define LASH_OPT_i (1<<0)
 #define LASH_OPT_c (1<<2)
 	if (opt & LASH_OPT_c) {
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c
index 677c9e6..e629bec 100644
--- a/sysklogd/klogd.c
+++ b/sysklogd/klogd.c
@@ -45,10 +45,10 @@
 
 
 	{
-		unsigned long opt;
+		unsigned opt;
 
 		/* do normal option parsing */
-		opt = bb_getopt_ulflags(argc, argv, "c:n", &start);
+		opt = getopt32(argc, argv, "c:n", &start);
 
 		if (opt & OPT_LEVEL) {
 			/* Valid levels are between 1 and 8 */
diff --git a/sysklogd/logger.c b/sysklogd/logger.c
index a78cf77..15a4bfb 100644
--- a/sysklogd/logger.c
+++ b/sysklogd/logger.c
@@ -89,7 +89,7 @@
 
 int logger_main(int argc, char **argv)
 {
-	unsigned long opt;
+	unsigned opt;
 	char *opt_p, *opt_t;
 	int pri = LOG_USER | LOG_NOTICE;
 	int option = 0;
@@ -100,7 +100,7 @@
 	bb_getpwuid(name, geteuid(), sizeof(name));
 
 	/* Parse any options */
-	opt = bb_getopt_ulflags(argc, argv, "p:st:", &opt_p, &opt_t);
+	opt = getopt32(argc, argv, "p:st:", &opt_p, &opt_t);
 	if (opt & 0x1) pri = pencode(opt_p); // -p
 	if (opt & 0x2) option |= LOG_PERROR; // -s
 	if (opt & 0x4) safe_strncpy(name, opt_t, sizeof(name)); // -t
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index 8880829..40b98c1 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -575,7 +575,7 @@
 	char *p;
 
 	/* do normal option parsing */
-	option_mask = bb_getopt_ulflags(argc, argv, OPTION_STR, OPTION_PARAM);
+	option_mask = getopt32(argc, argv, OPTION_STR, OPTION_PARAM);
 	if (option_mask & OPT_mark) MarkInterval = atoi(opt_m) * 60; // -m
 	//if (option_mask & OPT_nofork) // -n
 	//if (option_mask & OPT_outfile) // -O
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index 682c4f6..277415a 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -16,7 +16,7 @@
 int dmesg_main(int argc, char *argv[])
 {
 	char *size, *level;
-	int flags = bb_getopt_ulflags(argc, argv, "cs:n:", &size, &level);
+	int flags = getopt32(argc, argv, "cs:n:", &size, &level);
 
 	if (flags & 4) {
 		if (klogctl(8, NULL, bb_xgetlarg(level, 10, 0, 10)))
diff --git a/util-linux/fdformat.c b/util-linux/fdformat.c
index 9b97e68..0242d8d 100644
--- a/util-linux/fdformat.c
+++ b/util-linux/fdformat.c
@@ -63,7 +63,7 @@
 	if (argc < 2) {
 		bb_show_usage();
 	}
-	verify = !bb_getopt_ulflags(argc, argv, "n");
+	verify = !getopt32(argc, argv, "n");
 	argv += optind;
 
 	xstat(*argv, &st);
diff --git a/util-linux/getopt.c b/util-linux/getopt.c
index a4968b7..02bb218 100644
--- a/util-linux/getopt.c
+++ b/util-linux/getopt.c
@@ -184,7 +184,7 @@
 #define init_longopt() add_longopt(NULL,0)
 
 /* Register a long option. The contents of name is copied. */
-void add_longopt(const char *name,int has_arg)
+void add_longopt(const char *name, int has_arg)
 {
 	if (!name) { /* init */
 		free(long_options);
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
index e1a67f2..cce3133 100644
--- a/util-linux/hwclock.c
+++ b/util-linux/hwclock.c
@@ -182,7 +182,7 @@
 
 int hwclock_main ( int argc, char **argv )
 {
-	unsigned long opt;
+	unsigned opt;
 	int utc;
 
 #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS
@@ -194,11 +194,11 @@
 		{ "systohc",   0, 0, 'w' },
 		{ 0,           0, 0, 0 }
 	};
-	bb_applet_long_options = hwclock_long_options;
+	applet_long_options = hwclock_long_options;
 #endif
 
-	bb_opt_complementally = "?:r--ws:w--rs:s--wr:l--u:u--l";
-	opt = bb_getopt_ulflags(argc, argv, "lursw");
+	opt_complementary = "?:r--ws:w--rs:s--wr:l--u:u--l";
+	opt = getopt32(argc, argv, "lursw");
 
 	/* If -u or -l wasn't given check if we are using utc */
 	if (opt & (HWCLOCK_OPT_UTC | HWCLOCK_OPT_LOCALTIME))
diff --git a/util-linux/ipcs.c b/util-linux/ipcs.c
index 8570659..5e58e81 100644
--- a/util-linux/ipcs.c
+++ b/util-linux/ipcs.c
@@ -572,14 +572,14 @@
 {
 	int id = 0;
 	unsigned flags = 0;
-	unsigned long opt;
+	unsigned opt;
 	char *opt_i;
 #define flag_print	(1<<0)
 #define flag_msg	(1<<1)
 #define flag_sem	(1<<2)
 #define flag_shm	(1<<3)
 
-	opt = bb_getopt_ulflags(argc, argv, "i:aqsmtcplu", &opt_i);
+	opt = getopt32(argc, argv, "i:aqsmtcplu", &opt_i);
 	if (opt & 0x1) { // -i
 		id = atoi(opt_i);
 		flags |= flag_print;
diff --git a/util-linux/losetup.c b/util-linux/losetup.c
index 54a1601..8882ee4 100644
--- a/util-linux/losetup.c
+++ b/util-linux/losetup.c
@@ -14,11 +14,11 @@
 
 int losetup_main(int argc, char **argv)
 {
-	unsigned long opt;
+	unsigned opt;
 	char *opt_o;
 	int offset = 0;
 
-	opt = bb_getopt_ulflags(argc, argv, "do:", &opt_o);
+	opt = getopt32(argc, argv, "do:", &opt_o);
 	argc -= optind;
 	argv += optind;
 
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 565dccd..899bf85 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -1428,7 +1428,7 @@
 	const char *fstabname;
 	FILE *fstab;
 	int i, j, rc = 0;
-	unsigned long opt;
+	unsigned opt;
 	struct mntent mtpair[2], *mtcur = mtpair;
 
 	/* parse long options, like --bind and --move.  Note that -o option
@@ -1444,7 +1444,7 @@
 
 	// Parse remaining options
 
-	opt = bb_getopt_ulflags(argc, argv, "o:t:rwanfvs", &opt_o, &fstype);
+	opt = getopt32(argc, argv, "o:t:rwanfvs", &opt_o, &fstype);
 	if (opt & 0x1) append_mount_options(&cmdopts, opt_o); // -o
 	//if (opt & 0x2) // -t
 	if (opt & 0x4) append_mount_options(&cmdopts, "ro"); // -r
diff --git a/util-linux/rdate.c b/util-linux/rdate.c
index c740a69..c24465d 100644
--- a/util-linux/rdate.c
+++ b/util-linux/rdate.c
@@ -63,8 +63,8 @@
 	time_t remote_time;
 	unsigned long flags;
 
-	bb_opt_complementally = "-1";
-	flags = bb_getopt_ulflags(argc, argv, "sp");
+	opt_complementary = "-1";
+	flags = getopt32(argc, argv, "sp");
 
 	remote_time = askremotedate(argv[optind]);
 
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c
index 29e9f3e..ff70bf7 100644
--- a/util-linux/readprofile.c
+++ b/util-linux/readprofile.c
@@ -64,8 +64,8 @@
 	proFile = defaultpro;
 	mapFile = defaultmap;
 
-	bb_opt_complementally = "nn:aa:bb:ss:ii:rr:vv";
-	bb_getopt_ulflags(argc, argv, "M:m:p:nabsirv",
+	opt_complementary = "nn:aa:bb:ss:ii:rr:vv";
+	getopt32(argc, argv, "M:m:p:nabsirv",
 			&mult, &mapFile, &proFile,
 			&optNative, &optAll, &optBins, &optSub,
 			&optInfo, &optReset, &optVerbose);
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index ab75484..4fcb239 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -66,7 +66,7 @@
 	if (argc == 1)
 		bb_show_usage();
 
-	ret = bb_getopt_ulflags(argc, argv, "a");
+	ret = getopt32(argc, argv, "a");
 	if (ret & DO_ALL)
 		return do_em_all();
 
diff --git a/util-linux/switch_root.c b/util-linux/switch_root.c
index 1a59907..f2d9b6e 100644
--- a/util-linux/switch_root.c
+++ b/util-linux/switch_root.c
@@ -71,8 +71,8 @@
 
 	// Parse args (-c console)
 
-	bb_opt_complementally="-2";
-	bb_getopt_ulflags(argc,argv,"c:",&console);
+	opt_complementary="-2";
+	getopt32(argc,argv,"c:",&console);
 
 	// Change to new root directory and verify it's a different fs.
 
diff --git a/util-linux/umount.c b/util-linux/umount.c
index e4308e5..9c551f9 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -27,7 +27,7 @@
 	struct mntent me;
 	FILE *fp;
 	int status = EXIT_SUCCESS;
-	unsigned long opt;
+	unsigned opt;
 	struct mtab_list {
 		char *dir;
 		char *device;
@@ -36,7 +36,7 @@
 
 	/* Parse any options */
 
-	opt = bb_getopt_ulflags(argc, argv, OPTION_STRING);
+	opt = getopt32(argc, argv, OPTION_STRING);
 
 	argc -= optind;
 	argv += optind;