🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.bash.bug
Article #801

Asynchronous notify in bash V1.04.

#801
From: Local Utilities
Date: Mon, 04 Dec 1989 01:38
72 lines
2771 bytes
	This bug report falls into the category of a "philosophical",
since my complains are with the way asynchronous notify works in
bash.  One of the things I don't like happens when a process stops
(for tty output, input, etc).  Bash informs me that the current
directory is the working directory of the job (if different from
the current working directory), only to have it tell me immediately
after that I am back into my original directory.  The other complaint
I have is that when a process stops, bash doesn't make the stopped
process the current process (so you can use %+ to bring it to the
foreground).  I know it is the way the csh works, but I find it
very useful.

	I have enclosed context diffs for "jobs.c" (version 1.04
of bash).  The fixes seem to achieve the desired effect.

					Bruce Keats
					Dept. of Electrical Engineering
					Queen's University
					bruce@eleceng.ee.queensu.ca
					bruce@ic.cmc.ca (preferred)


===================================================================
RCS file: RCS/jobs.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -c -r1.1 -r1.2
*** /tmp/,RCSt1a07221	Sun Dec  3 20:12:42 1989
--- /tmp/,RCSt2a07221	Sun Dec  3 20:12:43 1989
***************
*** 539,545 ****
  
        fprintf (stream, "%s", p->command);
  
!       if (p->next == jobs[index]->pipe) 
  	{
  	  if (JOBSTATE (index) == JRUNNING && jobs[index]->foreground == 0)
  	    fprintf (stream, " &");
--- 539,545 ----
  
        fprintf (stream, "%s", p->command);
  
!       if (p->next == jobs[index]->pipe && JOBSTATE(index) != JSTOPPED) 
  	{
  	  if (JOBSTATE (index) == JRUNNING && jobs[index]->foreground == 0)
  	    fprintf (stream, " &");
***************
*** 1241,1246 ****
--- 1241,1248 ----
  			{
  			  jobs[job]->state = JSTOPPED;
  			  jobs[job]->foreground = 0;
+ 			  /* make the stopped job the current job */
+ 			  set_current_job(job);
  			}
  		      else
  			{
***************
*** 1314,1322 ****
--- 1316,1326 ----
  	    case JSTOPPED:
  	      fprintf (stderr, "\n");
  	      pretty_print_job (job, 0, stderr);
+ #ifdef notdef
  	      if (dir && (strcmp (dir, jobs[job]->wd) != 0))
  		fprintf (stderr,
  			 "(wd now: %s)\n", polite_directory_format (dir));
+ #endif /* notdef */
  	      jobs[job]->notified = 1;
  	      break;
  
Technical Details
Message-ID: <8912040138.AA07241@earth.ic.cmc.ca>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!uwm.edu!zaphod.mps.ohio-state.edu!tut.cis.ohio-state.edu!ic.cmc.ca!bin

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!uwm.edu!zaphod.mps.ohio-state.edu!tut.cis.ohio-state.edu!ic.cmc.ca!bin
From: bin@ic.cmc.ca (Local Utilities)
Newsgroups: gnu.bash.bug
Subject: Asynchronous notify in bash V1.04.
Message-ID: <8912040138.AA07241@earth.ic.cmc.ca>
Date: 4 Dec 89 01:38:26 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 72