* between different systems
* http://www.unix-systems.org/single_unix_specification_v2/xcu/ar.html
*/
-
//config:config AR
//config: bool "ar (9.5 kb)"
//config: default n # needs to be improved to be able to replace binutils ar
//config: help
-//config: ar is an archival utility program used to create, modify, and
-//config: extract contents from archives. In practice, it is used exclusively
-//config: for object module archives used by compilers.
+//config: ar is an archival utility program used to create, modify, and
+//config: extract contents from archives. In practice, it is used exclusively
+//config: for object module archives used by compilers.
//config:
-//config: Unless you have a specific application which requires ar, you should
-//config: probably say N here: most compilers come with their own ar utility.
+//config: Unless you have a specific application which requires ar, you should
+//config: probably say N here: most compilers come with their own ar utility.
//config:
//config:config FEATURE_AR_LONG_FILENAMES
//config: bool "Support long filenames (not needed for debs)"
//config: default y
//config: depends on AR
//config: help
-//config: By default the ar format can only store the first 15 characters
-//config: of the filename, this option removes that limitation.
-//config: It supports the GNU ar long filename method which moves multiple long
-//config: filenames into a the data section of a new ar entry.
+//config: By default the ar format can only store the first 15 characters
+//config: of the filename, this option removes that limitation.
+//config: It supports the GNU ar long filename method which moves multiple long
+//config: filenames into a the data section of a new ar entry.
//config:
//config:config FEATURE_AR_CREATE
//config: bool "Support archive creation"
//config: default y
//config: depends on AR
//config: help
-//config: This enables archive creation (-c and -r) with busybox ar.
+//config: This enables archive creation (-c and -r) with busybox ar.
//applet:IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
+
//kbuild:lib-$(CONFIG_AR) += ar.o
//usage:#define ar_trivial_usage
archive_handle = init_handle();
- /* --: prepend '-' to the first argument if required */
- /* -1: at least one param is reqd */
- /* one of p,t,x[,r] is required */
- opt_complementary = "--:-1:p:t:x"IF_FEATURE_AR_CREATE(":r");
- opt = getopt32(argv, "voc""ptx"IF_FEATURE_AR_CREATE("r"));
+ /* prepend '-' to the first argument if required */
+ if (argv[1] && argv[1][0] != '-' && argv[1][0] != '\0')
+ argv[1] = xasprintf("-%s", argv[1]);
+ opt = getopt32(argv, "^"
+ "voc""ptx"IF_FEATURE_AR_CREATE("r")
+ "\0"
+ /* -1: at least one arg is reqd */
+ /* one of p,t,x[,r] is required */
+ "-1:p:t:x"IF_FEATURE_AR_CREATE(":r")
+ );
argv += optind;
t = opt / FIRST_CMD;