MirBSD Korn Shell for Jehanne
Go to file
tg 942035921c Pass arguments via a resonse file if executing a child fails
Command line length limit of OS/2 is 32KiB. If the total length of
all arguments is larger than this limit, it's needed to use a
response file.

Previously, the total length calculation was simply to add length of
all arguments. However, this result was not match with real length of
arguments, which are passed to child processes with OS/2 APIs.

Because conversion methods of arguments from libc to OS/2 APIs are
different depending on libc.

For example, kLIBC inserts its signature to an argument list. In
addition, it passes arguments with a leading space like:

    arg0
     kLIBC signature
     arg1
     arg2
     ...

Whereas, EMX just distinguishes arg0 and others like:

    arg0
    arg1 arg2 arg3 ...

After all, simple sum of a length of arguments are not correct.

The better way is to try to execute a child process, and to retry with
a response file if it fails due to arguments-too-long.

This has been found while doing 'bootstrap', especially 'autoreconf'
in coreutils git repo. It stops with:

    autom4te: /usr/local/bin/m4: Invalid argument

From: KO Myung-Hun <komh@chollian.net>
2017-12-22 16:41:42 +00:00
Build.sh add patch for the Jehanne operating system, from Shamar on IRC 2017-12-22 16:30:00 +00:00
Makefile monkey-patch offsetof for a klibc/dietlibc warning; bump to R56b (bugfixes) 2017-08-29 13:38:31 +00:00
check.pl catch z/OS not having $Config not filling in the __perlpath env correctly 2017-05-05 21:17:31 +00:00
check.t increase some sleep and time limits, reported by Dr. Werner Fink 2017-12-15 13:35:34 +00:00
dot.mkshrc oh wait, actually… 2017-08-08 21:10:21 +00:00
edit.c unbreak vi mode '0' movement, bug introduced in r1.323 2017-08-27 23:33:50 +00:00
emacsfn.h fix English (thanks to Andreas Buschka); TIL: 2016-09-01 12:59:12 +00:00
eval.c quell a Fink compiler warning; not entirely correct but no harm done either 2017-08-28 23:27:51 +00:00
exec.c all uses of mksh_vdirsep should exclude “\builtin” from triggering it 2017-10-11 21:09:24 +00:00
expr.c refresh with up-to-date eawparse 2017-11-18 12:01:53 +00:00
exprtok.h fix refactoro, spotted by Natureshadow; add (working) testsuite for all operators 2016-08-12 16:48:05 +00:00
funcs.c fix typo in comment 2017-11-20 02:32:32 +00:00
histrap.c Coverity 1416282 2017-08-07 23:25:09 +00:00
jehanne.c add patch for the Jehanne operating system, from Shamar on IRC 2017-12-22 16:30:00 +00:00
jobs.c fix Red Hat BZ#1479320 by making interactive shells remember async PIDs too 2017-08-08 14:30:10 +00:00
lalloc.c clean up, avoid aliasing concerns in non-debug case 2016-02-26 21:53:37 +00:00
lex.c tentatively fix Debian #878947 by putting an end to (some) nesting 2017-10-17 23:45:19 +00:00
lksh.1 POSuX demands persistent history support, so permit it in lksh 2017-04-02 13:38:02 +00:00
main.c add MKSH_ENVDIR code for Jehanne (OS by Shamar (giacomotesio) from IRC): 2017-10-14 21:05:22 +00:00
mirhash.h janitorial work 2015-11-29 17:05:02 +00:00
misc.c apply another quickfix by komh 2017-10-15 20:21:51 +00:00
mksh.1 fix documentation bug, thanks panpo and Riviera for spotting 2017-08-16 21:40:14 +00:00
mksh.ico add the desktop shortcut / icon from mksh/Win32 so it may be used by everyone for mksh/Unix too 2013-07-25 16:18:25 +00:00
os2.c Pass arguments via a resonse file if executing a child fails 2017-12-22 16:41:42 +00:00
rlimits.opt add explicit licence 2015-12-12 21:08:44 +00:00
sh.h tentatively fix Debian #878947 by putting an end to (some) nesting 2017-10-17 23:45:19 +00:00
sh_flags.opt fixup relation between lksh and mksh (somewhat minimal delta) 2017-02-18 02:33:15 +00:00
shf.c add EBCDIC primer and attribution for iSKUNK 2017-05-05 22:45:58 +00:00
strlcpy.c janitorial work 2015-11-29 17:05:02 +00:00
syn.c sprinkle tons more ord() around 2017-05-05 22:53:32 +00:00
tree.c sprinkle tons more ord() around 2017-05-05 22:53:32 +00:00
var.c move slashifying of PATH, TMPDIR and two OS/2-specific variables from 2017-10-13 23:34:49 +00:00
var_spec.h collective R54 release preparation multi-merger: 2016-11-11 23:31:39 +00:00