busybox/libbb/getopt_allopts.c
Denys Vlasenko 727948e585 getopt32: factor out code to treat all args as options
Working towards making getopt32() xmalloc-free

function                                             old     new   delta
make_all_argv_opts                                     -      58     +58
top_main                                             914     912      -2
getopt32                                            1517    1458     -59
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/2 up/down: 58/-61)             Total: -3 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-04 16:33:23 +02:00

28 lines
535 B
C

/* vi: set sw=4 ts=4: */
/*
* Copyright (C) 2017 Denys Vlasenko
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
#include "libbb.h"
//kbuild:lib-y += getopt_allopts.o
void FAST_FUNC make_all_argv_opts(char **argv)
{
/* Note: we skip argv[0] */
while (*++argv) {
char *p;
if (argv[0][0] == '-')
continue;
/* Neither top nor ps care if "" arg turns into "-" */
/*if (argv[0][0] == '\0')
continue;*/
p = xmalloc(strlen(*argv) + 2);
*p = '-';
strcpy(p + 1, *argv);
*argv = p;
}
}