rc-list - mailing list for the rc(1) shell
 help / color / mirror / Atom feed
From: Scott Schwartz <schwartz@cse.psu.edu>
To: byron@netapp.com, rc@hawkwind.utcs.toronto.edu
Subject: Re: intr and RC
Date: Sun, 12 Jan 1997 18:39:16 -0500	[thread overview]
Message-ID: <199701122339.SAA08864@vorlon.cse.psu.edu> (raw)

	I am not sure what this bug is but the bug that last bit me with
	Solaris and which I consider a showstopper is this:

		rsh solaris-machine ls

	The last time I ran this command rc would hang after running ls,
	because rc on the solaris machine was getting no child pids back
	from wait().

I can't reproduce that, with a recent version of solaris.

% uname -a
SunOS vorlon.cse.psu.edu 5.5.1 Generic_103640-03 sun4m sparc SUNW,SPARCstation-4

% cc -V
cc: SC4.0 18 Oct 1995 C 4.0

Here are all the changes I've made to the distributed code:

% rcsdiff -c RCS/*

*** /tmp/T0a00295	Sun Jan 12 18:29:27 1997
--- Makefile	Fri May 31 02:08:02 1996
***************
*** 16,28 ****
  #ADDON=addon.o
  
  # Use an ANSI compiler (or at least one that groks prototypes and void *):
! CC=gcc -g -O
! CFLAGS=
  LDFLAGS=
  
  # You may substitute "bison -y" for yacc. (You want to choose the one that
  # makes a smaller y.tab.c. Also see the README about Sun's yacc.)
! YACC=yacc
  
  OBJS=$(ADDON) builtins.o except.o exec.o $(EXECVE) fn.o footobar.o getopt.o \
  	glob.o glom.o hash.o heredoc.o input.o lex.o list.o main.o match.o \
--- 16,30 ----
  #ADDON=addon.o
  
  # Use an ANSI compiler (or at least one that groks prototypes and void *):
! CC=cc
! # -cg92
! #CC=insight 
! CFLAGS=  -O -fast -DSYSVR4
  LDFLAGS=
  
  # You may substitute "bison -y" for yacc. (You want to choose the one that
  # makes a smaller y.tab.c. Also see the README about Sun's yacc.)
! YACC=bison -y
  
  OBJS=$(ADDON) builtins.o except.o exec.o $(EXECVE) fn.o footobar.o getopt.o \
  	glob.o glom.o hash.o heredoc.o input.o lex.o list.o main.o match.o \
No differences encountered
*** /tmp/T0a00295	Sun Jan 12 18:29:27 1997
--- footobar.c	Fri May 31 01:45:46 1996
***************
*** 9,15 ****
  
  #ifdef PROTECT_ENV
  static bool Fconv(Format *f, int ignore) {
! 	unsigned const char *s = va_arg(f->args, unsigned const char *);
  	int c;
  
  	while ((c = *s++) != '\0')
--- 9,15 ----
  
  #ifdef PROTECT_ENV
  static bool Fconv(Format *f, int ignore) {
! 	const unsigned char *s = va_arg(f->args, const unsigned char *);
  	int c;
  
  	while ((c = *s++) != '\0')
*** /tmp/T0a00295	Sun Jan 12 18:29:27 1997
--- input.c	Fri May 31 01:45:47 1996
***************
*** 140,145 ****
--- 140,147 ----
  				long /*ssize_t*/ r = rc_read(istack->fd, inbuf + 2, BUFSIZE);
  				sigchk();
  				if (r < 0) {
+ 					if (errno == EINTR) /*retry interrupted read*/
+ 						continue;
  					uerror("read");
  					rc_exit(1);
  				}
*** /tmp/T0a00295	Sun Jan 12 18:29:28 1997
--- print.c	Fri May 31 01:45:44 1996
***************
*** 219,225 ****
   */
  
  extern void fmtappend(Format *format, const char *s, SIZE_T len) {
! 	while (format->buf + len > format->bufend) {
  		SIZE_T split = format->bufend - format->buf;
  		memcpy(format->buf, s, split);
  		format->buf += split;
--- 219,225 ----
   */
  
  extern void fmtappend(Format *format, const char *s, SIZE_T len) {
! 	while (len > format->bufend - format->buf) {
  		SIZE_T split = format->bufend - format->buf;
  		memcpy(format->buf, s, split);
  		format->buf += split;
***************
*** 240,246 ****
   */
  
  extern int printfmt(Format *format, const char *fmt) {
! 	unsigned const char *s = (unsigned const char *) fmt;
  
  	if (fmttab[0] == NULL)
  		inittab();
--- 240,246 ----
   */
  
  extern int printfmt(Format *format, const char *fmt) {
! 	const unsigned char *s = (const unsigned char *) fmt;
  
  	if (fmttab[0] == NULL)
  		inittab();
***************
*** 314,319 ****
--- 314,320 ----
  
  static void memprint_grow(Format *format, SIZE_T more) {
  	char *buf;
+ 	SIZE_T pos = format->buf - format->bufbegin;
  	SIZE_T len = format->bufend - format->bufbegin + 1;
  	len = (len >= more)
  		? len * 2
***************
*** 325,331 ****
  		buf = nalloc(len);
  		memcpy(buf, format->bufbegin, used);
  	}
! 	format->buf	 = buf + (format->buf - format->bufbegin);
  	format->bufbegin = buf;
  	format->bufend	 = buf + len - 1;
  }
--- 326,332 ----
  		buf = nalloc(len);
  		memcpy(buf, format->bufbegin, used);
  	}
! 	format->buf	 = buf + pos;
  	format->bufbegin = buf;
  	format->bufend	 = buf + len - 1;
  }
*** /tmp/T0a00295	Sun Jan 12 18:29:29 1997
--- signal.c	Fri May 31 01:45:50 1996
***************
*** 66,72 ****
  	void (*h)(int);
  	int i;
  	for (i = 1; i < NUMOFSIGNALS; i++) {
! 		if ((h = signal(i, SIG_DFL)) != SIG_DFL)
  			signal(i, h);
  		sighandlers[i] = h;
  	}
--- 66,73 ----
  	void (*h)(int);
  	int i;
  	for (i = 1; i < NUMOFSIGNALS; i++) {
! 		h = signal(i, SIG_DFL);
! 		if (h != SIG_ERR && h != SIG_DFL)
  			signal(i, h);
  		sighandlers[i] = h;
  	}


             reply	other threads:[~1997-01-12 23:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-01-12 23:39 Scott Schwartz [this message]
1997-01-13  0:52 ` David Luyer
1997-02-11 13:57   ` Markus Friedl
  -- strict thread matches above, loose matches on Subject: below --
1997-01-13  1:33 Scott Schwartz
1997-01-12 23:17 Byron Rakitzis
1997-01-09 21:59 Scott Schwartz
1997-01-08 20:01 Mark K. Gardner
1997-01-09 11:09 ` Tim Goodwin
1997-01-08  7:45 Bengt Kleberg
1997-01-07 19:55 Alan Watson
1997-01-07 18:00 Alan Watson
1997-01-07 17:03 Mark K. Gardner
1997-01-07 17:16 ` Scott Schwartz
1997-01-07 17:46 ` Paul Haahr
1996-12-31 21:53 Mark K. Gardner
1996-12-31 22:01 ` Soren Dayton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199701122339.SAA08864@vorlon.cse.psu.edu \
    --to=schwartz@cse.psu.edu \
    --cc=byron@netapp.com \
    --cc=rc@hawkwind.utcs.toronto.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).