Date: Sun, 11 Aug 1996 12:41:26 +0200 (IST) From: Eli Zaretskii To: DJ Delorie Cc: djgpp-workers AT delorie DOT com Subject: Re: `system' and wildcard expansion In-Reply-To: <199607291242.IAA16781@delorie.com> Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 29 Jul 1996, DJ Delorie wrote: > > How can this be backward-compatible if the old crt0 doesn't know about > > the new method? I thought about this but didn't find any acceptable > > solution. But I will be glad to hear any ideas on this. > > Pass the 128-char command line the regular way. Provide a hook (4dos > way?) that points to a 4k-char command line. Don't use !proxy. OK, I went back to the drawing board and now I have such a version of `system'. The long command lines from `system' are passed via environment variable called " !proxy" (lower-cased and with the leading blank) and are expanded just like if they were coming from the DOS command-line tail; `spawn' passes its command lines via !proxy on the command line, as it does now, and these arguments aren't expanded. This required a change to c1args.c (which was the reason I didn't do it in the first place). Just a few questions so I could wrap up this adventure and mail the new sources: 1) The GNUish MSDOS method of passing long command lines (`_argc', `_arv0', etc. in the environment) is no longer supported. Shame on me for only seeing it now. I presume it's on purpose (coad bloat and such) and due to lack of use, right? 2) The startup flags that deal with the way argv[0] will look like are only applied to __dos_argv0, argv[0] that comes from !proxy avoids this conversion. Is this on purpose? If not, it's easy to fix, I just want to know I don't break something by doing this.