aboutsummaryrefslogtreecommitdiff
path: root/scripts/mkflags.c
AgeCommit message (Collapse)Author
2020-11-14Allow 0 prefix to optstr to include argv[0] in optargs[0].Rob Landley
2020-02-25Fix off by one error that treats bit 31 as negative (so ls --color setsRob Landley
all the bits). While we're at it, make LL be ULL so bit 63 doesn't have the same problem.
2020-02-22mkflags: fix a sscanf buffer off-by-one.Elliott Hughes
Sadly, the compilers don't even catch this common mistake if you use sscanf_s(3). Luckily, ASan does.
2019-01-19Fix various warnings building on FreeBSD.Rob Landley
2018-12-26Teach the argument plumbing how to do -@ for mkfs.vfatRob Landley
2018-12-25Simplify the mkflags logic a bit.Rob Landley
We're not going to USE_BLAH("a")"(longopt)" or similarly crazy corner cases, so don't try to support them.
2018-10-21Add % to lib/args.c (long time in milliseconds), add xmillitime(), redoRob Landley
xparsetime() not to need floating point, adjust callers.
2018-03-19Ryan Prichard pointed out that du -d0 should act like du -s, but the plumbingRob Landley
wouldn't let him assign a negative default value, so I fixed it.
2016-12-07Thinko in recent longopt commit.Rob Landley
2016-12-07Bugfix: configuring out a longopt confused the option parsing.Rob Landley
(This made ls -l not work when LS_COLOR was off.)
2016-07-17The recent option parsing changes broke the multiplexer, because the "toybox"Rob Landley
command was trying to parse their options and failing. (Commands that aren't just disabled but have no option string even in the allyesconfig case need an OPTSTR of 0.) This is probably only a partial fix, there's some design work to think through here.
2016-07-15Add optional openssl accelerated versions of hash functions, loosely based onRob Landley
a patch from Elliott Hughes, who said: [PATCH] Add support for libcrypto for MD5/SHA. Orders of magnitude faster (for architectures where OpenSSL/BoringSSL has optimized assembler). Also adds sha224sum, sha256sum, sha384sum, and sha512sum for folks building with libcrypto. The fallback portable C implementations could easily be refactored to be API-compatible, but I don't know whether they'd stay here or move to lib/ so I've left that part alone for now.
2016-06-30Fix option parsing infrastructure bug.Rob Landley
In main.c: used adjusted string with placeholers for removed options (so flag values don't move based on config, allowing FORCE_FLAGS to work). In scripts/mkflags.c: test was wrong, a bare longopt never matches a single letter command, but it was treated as always matching when comparing allyesconfig vs current config to determine which options were disabled, so there was a corner case that got the flag values wrong.
2016-01-18Implement basic pkill plumbing, and fix FORCE_FLAGS on flag context switch.Rob Landley
2015-12-10Expand toys.optargs to 64 bits so people adding more options to ls don't run ↵Rob Landley
out. Keep the low 32 bits of FLAG_x constants as 32 bit numbers so that at least on little endian platforms it's still normal 32 bit math outside of lib/args.c.
2015-08-30Build updates: make change should use top level .config for global settings,Rob Landley
add NOSTRIP variable to force skipping strip, and save intermediate flag data in generated/flags.raw and have mkflags.c error message point to that.
2015-08-08scripts/mkflags.c: add missing unistd.h, ctype.hIsaac Dunham
2015-05-03If a shortopt is configured out right before a bare longopt, the option ↵Rob Landley
parsing infrastructure segfaults because there's no next shortopt but the list isn't empty. (There was a test for this, but we're simultaneously traversing two lists and it was testing the wrong one.)
2015-03-04scripts/mkflags.c : main function need return 0 if normal exitHyejin Kim
2014-12-31Redo option parsing infrastructure so #define FORCE_FLAGS can unzero flag ↵Rob Landley
macros for a disabled command (needed when multiple commands share infrastructure with a common set of flags). This means the flag space is no longer packed, but leaves gaps where the zeroes go. (Actual flag bit positions are the same for all configs.) Since the option parsing needs to know where the holes are, the OPTSTR values are now generated as part of flags.h with ascii 1 values for the disabled values. (So generated/oldflags.h went away.) This also means that the option string argument for OLDTOY() went away, it now uses the same arguments as the NEWTOY() it references.
2014-05-10Catch duplicate command name (which breaks the build already, but doesn't ↵Rob Landley
identify the culprit).
2014-04-09_mkflags_ had an issue for generating FLAG_xxxx macros for long options.Ashwini Sharma
Only the first __long__ option, without any __short__ option had a proper flag value, rest all were defined to ZERO. Becaus the _flist_ was not moved to the next in this case.
2014-03-19There are cases when the long options are of the format abc-def. In current ↵Ashwini Sharma
implementation FLAG_xxx macros are generated for long options too. with __-__ sign in the macro, it will generate errors. I am of the opinion that __-__ be converted to '_' for generating the FLAG_xxx macros and be used in the command. This will enable the user to 'abc-def', but be handled like 'abc_def' in code.
2014-02-24Put all FOR_xxx blocks after all CLEANUP_xxx in generated/flags.h so the ↵Rob Landley
usages don't have to be in alphabetical order.
2014-02-16Make CLEANUP transitions work, so multiple NEWTOY() can exist in the same file.Rob Landley
Don't #undefine TT in the CLEANUP blocks of generated/flags.h, and #ifdef around the other TT definition. That way you can put a union at the start of your GLOBALS() with the arguments filled out by option parsing, and then have multiple main() functions with different argumetns and different FLAG_x macros, while sharing infrastructure that's not under lib.
2014-02-16Various cleanups found by Tom Sparrow's static analysis.Rob Landley
2014-02-08Fix segfault with single build of a command with bare longopts.Rob Landley
2013-10-03Switch flag generation from shell to C.Rob Landley
This should actually generate FLAG_longopt 0 #defines for disabled bare longopts (ala ls without --color). Put temporary executables under "generated" (including instlist for install).