delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/05/30/18:22:40

From: "Mark E." <snowball3 AT bigfoot DOT com>
To: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>, djgpp-workers AT delorie DOT com
Date: Tue, 30 May 2000 18:22:51 -0400
MIME-Version: 1.0
Subject: Re: W2k
Message-ID: <393406FB.15660.3D6AC9@localhost>
In-reply-to: <200005302138.AAA13874@alpha.netvision.net.il>
References: <10005301321 DOT AA11392 AT clio DOT rice DOT edu> (sandmann AT clio DOT rice DOT edu)
X-mailer: Pegasus Mail for Win32 (v3.12c)
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> The diffs against dosexec.c in djlsr203.zip are reproduced below, so
> if Someone (tm) can build Bash for Charles, please feel free...

Don't need to. All versions of Bash that I'm aware of do this already 
unconditionally. Here's part of bshspawn.c that shows what Bash does:

  /* disable interrupt */
  old_enable = __dpmi_get_and_disable_virtual_interrupt_state ();
  old_ctrl_c = __djgpp_set_ctrl_c (0);

  /* check empty dpmi selectors */
  selectors = dosutil_check_dpmi_selectors ();

  __djgpp_exception_toggle();

  errno = 0;

  /* Run child process. If the filename doesn't have a period, add one
     to prevent __dos_find_on_path from finding a different file than
     intended.  */
    status = spawnve (P_WAIT, path, args, envp);

[snip]

  /* disable interrupt */
  __dpmi_get_and_disable_virtual_interrupt_state ();

  __djgpp_exception_toggle();

  /* free discarded dpmi selectors */
  dosutil_free_dpmi_selectors (selectors);

  /* Reset standard input */
  dosutil_reset_console();

  /* enable interrupt */
  __djgpp_set_ctrl_c (old_ctrl_c);
  __dpmi_get_and_enable_virtual_interrupt_state ();


In case you're wondering, 
dosutil_check_dpmi_selectors/dosutil_free_dpmi_selectors is Daisuke's hack to 
slow down the leaking of DPMI selectors.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019