summary refs log tree commit diff
Commit message (Expand)AuthorAge
...
* input: Make preadbuffer staticHerbert Xu2015-01-05
* expand: Fixed "$@" expansion when EXP_FULL is falseHerbert Xu2015-01-05
* builtin: create builtins.c properly on old cppkabe@sra-tohoku.co.jp2014-12-26
* man: Clarify two redirection mechanismsStéphane Aulery2014-12-26
* [BUILTIN] Fix "test -x" as root on FreeBSD 8Jonathan Nieder2014-11-17
* [MAN] Document redirection file descriptor limitationStéphane Aulery2014-11-17
* [MAN] Correct typo in manual pageStéphane Aulery2014-11-17
* [PARSER] Catch variable length expansions on non-existant specialsHerbert Xu2014-10-30
* [PARSER] Simplify EOF/newline handling in list parserHerbert Xu2014-10-28
* [PARSER] Removed unnecessary pungetc on EOF from parserHerbert Xu2014-10-28
* [BUILTIN] Handle -- in dotcmdHerbert Xu2014-10-27
* [BUILTIN] Simplify echo commandHerbert Xu2014-10-27
* [BUILTIN] Optimise handling of backslash octals in printfHerbert Xu2014-10-27
* [BUILTIN] Use error instead of warnx for fatal errors in printfHerbert Xu2014-10-27
* [BUILTIN] Remove getintmax in printfHerbert Xu2014-10-27
* [BUILTIN] Remove unnecessary restoration of format string in printfHerbert Xu2014-10-27
* [OUTPUT] Add ifdefs around MEM_OUT handling in outmemHerbert Xu2014-10-27
* [OUTPUT] Add likely tag in outmemHerbert Xu2014-10-27
* [INPUT] Replace open-coded flushall in preadbufferHerbert Xu2014-10-27
* [BUILTIN] Handle embedded NULs correctly in printfHerbert Xu2014-10-27
* [BUILTIN] Add printf support for format string a, A, and FHerbert Xu2014-10-27
* [CD] support drive letters on CygwinEric Blake2014-10-27
* [EXPAND] Optimise nulonly away and just use quoted as beforeHerbert Xu2014-10-08
* [EXPAND] Do not split quoted VSLENGTH and VSTRIMHerbert Xu2014-10-08
* [EXPAND] Split unquoted $@/$* correctly when IFS is set but emptyHerbert Xu2014-10-08
* [VAR] Use setvareq to set OPTIND initiallyHerbert Xu2014-10-07
* [BUILTIN] Return without arguments in a trap should use status outside trapsHerbert Xu2014-10-06
* [BUILTIN] Allow return in loop conditional to set exit statusHerbert Xu2014-10-06
* [EVAL] Move common skipcount logic into skiploopHerbert Xu2014-10-06
* [BUILTIN] Do not allow break to break across function callsHerbert Xu2014-10-06
* [BUILTIN] Exit without arguments in a trap should use status outside trapsHerbert Xu2014-10-06
* [EVAL] Do not clobber exitstatus in evalcommandHerbert Xu2014-10-03
* [ERROR] Set exitstatus in onintHerbert Xu2014-10-02
* [TRAP] Make sure evalskip is zero before running trapsHerbert Xu2014-10-02
* [EVAL] Fix use-after-free in dotrap/evalstringHerbert Xu2014-10-02
* [PARSER] Add nlprompt/nlnoprompt helpersHerbert Xu2014-09-29
* [PARSER] Handle backslash newlines properly after dollar signHerbert Xu2014-09-29
* [INPUT] Kill pgetc_macroHerbert Xu2014-09-29
* [BUILTIN] Correctly handle test ! ! = !Herbert Xu2014-09-28
* Release 0.5.8.Herbert Xu2014-09-26
* [MAN] Clarify "trap '' signals" syntax in manual pageJonathan Nieder2014-09-26
* [MAN] 0 and EXIT both work for exit trapsAdam Buchbinder2014-09-26
* [MAN] Change characters for printf precision to bytesHerbert Xu2014-09-26
* [JOBS] Fix off-by-one error for multiple of four job numbersHarald van Dijk2014-09-26
* [BUILTIN] Set command -p path to /usr/sbin:/usr/bin:/sbin:/binHerbert Xu2014-09-26
* [BUILTIN] Small optimisation of command -pv changeHerbert Xu2014-09-26
* [BUILTIN] command: allow combining -p with -vHarald van Dijk2014-09-26
* [BUILTIN] Fixed argument parsing crash in testHerbert Xu2013-08-23
* [VAR] Initialise OPTIND after importing environmentHerbert Xu2013-08-23
* [VAR] Add newline when tracing in poplocalvarsPeter Rosin2013-08-23
="Op">*file) { byte c; int match; while (0 < (match = fscanf(file, " %hhx", &c))) { printf("%c", c); } if (!match) errx(EX_DATAERR, "invalid input"); } int main(int argc, char *argv[]) { bool reverse = false; const char *path = NULL; int opt; while (0 < (opt = getopt(argc, argv, "ac:g:p:rsz"))) { switch (opt) { break; case 'a': options.ascii ^= true; break; case 'c': options.cols = strtoul(optarg, NULL, 0); break; case 'g': options.group = strtoul(optarg, NULL, 0); break; case 'p': options.blank = strtoul(optarg, NULL, 0); break; case 'r': reverse = true; break; case 's': options.offset ^= true; break; case 'z': options.skip ^= true; break; default: return EX_USAGE; } } if (argc > optind) path = argv[optind]; if (!options.cols) return EX_USAGE; FILE *file = path ? fopen(path, "r") : stdin; if (!file) err(EX_NOINPUT, "%s", path); if (reverse) { undump(file); } else { dump(file); } if (ferror(file)) err(EX_IOERR, "%s", path); return EX_OK; }