← Commit list

f9437aaf5

Bernhard Reutner-Fischer
Bernhard Reutner-Fischer
2006-05-31
SOURCE BUG Duration: 35s

Subject

- make getopt_ulflags aware of CONFIG_GETOPT_LONG

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

libbb/getopt_ulflags.c+10 -1
@@ -298,13 +298,14 @@ typedef struct {
} t_complementally;
/* You can set bb_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;
+#endif
unsigned long
bb_getopt_ulflags (int argc, char **argv, const char *applet_opts, ...)
@@ -316,7 +317,9 @@ bb_getopt_ulflags (int argc, char **argv, const char *applet_opts, ...)
const unsigned char *s;
t_complementally *on_off;
va_list p;
+#if ENABLE_GETOPT_LONG
const struct option *l_o;
+#endif
unsigned long trigger;
#ifdef CONFIG_PS
char **pargv = NULL;
@@ -355,6 +358,7 @@ bb_getopt_ulflags (int argc, char **argv, const char *applet_opts, ...)
c++;
}
+#if ENABLE_GETOPT_LONG
for(l_o = bb_applet_long_options; l_o->name; l_o++) {
if(l_o->flag)
continue;
@@ -371,6 +375,7 @@ bb_getopt_ulflags (int argc, char **argv, const char *applet_opts, ...)
c++;
}
}
+#endif /* ENABLE_GETOPT_LONG */
for (s = (const unsigned char *)bb_opt_complementally; s && *s; s++) {
t_complementally *pair;
unsigned long *pair_switch;
@@ -452,8 +457,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) {
+#else
+ while ((c = getopt (argc, argv, applet_opts)) >= 0) {
+#endif /* ENABLE_GETOPT_LONG */
#ifdef CONFIG_PS
loop_arg_is_opt:
#endif