Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Feb 1997 07:12:27 -0800 (PST)
From:      John-Mark Gurney <jmg@nike.efn.org>
To:        Giles Lean <giles@nemeton.com.au>
Cc:        freebsd-gnats-submit@freefall.freebsd.org, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: bin/777 patch had problems with closed tty... 
Message-ID:  <Pine.BSF.3.95q.970211065311.24299i-100000@hydrogen.nike.efn.org>
In-Reply-To: <199702111136.WAA12347@nemeton.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 11 Feb 1997, Giles Lean wrote:

> 
> On Tue, 11 Feb 1997 00:30:02 -0800 (PST)  John-Mark Gurney wrote:
> 
> > comments?  is it ok if we change the default??  
> > 
> 
> I don't like changing the default.  I'd rather see no fix than do
> this.
> 
> I sent in an alternative patch that is ugly but does solve the problem
> without much code change.

heh...  I see what you mean...

well... I think I have a patch that will please every one :)...

basicly what this does is adds a return value to ask which you can
check...  ask will now return 0 if there was an "error" when reading... 
then you can check this return value and if it's 0 know that you should do
something that will continue processesing... else it will return 1 meaning
success... 

I've also modified the 'default' fall back case to return 0 for an error
also.. that way it actually fixes the problem else it would still exist...

anybody have problems with this patch?

here's the patch:
Index: pch.c
===================================================================
RCS file: /usr/cvs/src/gnu/usr.bin/patch/pch.c,v
retrieving revision 1.8
diff -c -r1.8 pch.c
*** pch.c	1996/04/12 11:37:32	1.8
--- pch.c	1997/02/11 15:00:09
***************
*** 231,239 ****
  	    filearg[0] = fetchname(buf, 0, FALSE);
  	}
  	if (filearg[0] == Nullch) {
! 	    ask1("No file found--skip this patch? [n] ");
! 	    if (*buf != 'y') {
! 		continue;
  	    }
  	    if (verbose)
  		say1("Skipping patch...\n");
--- 231,240 ----
  	    filearg[0] = fetchname(buf, 0, FALSE);
  	}
  	if (filearg[0] == Nullch) {
! 	    if (ask1("No file found--skip this patch? [n] ")) {
! 	    	if (*buf != 'y') {
! 		    continue;
! 	    	}
  	    }
  	    if (verbose)
  		say1("Skipping patch...\n");
Index: util.c
===================================================================
RCS file: /usr/cvs/src/gnu/usr.bin/patch/util.c,v
retrieving revision 1.2
diff -c -r1.2 util.c
*** util.c	1995/05/30 05:02:37	1.2
--- util.c	1997/02/11 15:08:12
***************
*** 227,233 ****
  
  /* Get a response from the user, somehow or other. */
  
! void
  ask(pat,arg1,arg2,arg3)
  char *pat;
  long arg1,arg2,arg3;
--- 227,233 ----
  
  /* Get a response from the user, somehow or other. */
  
! int
  ask(pat,arg1,arg2,arg3)
  char *pat;
  long arg1,arg2,arg3;
***************
*** 260,266 ****
      }
      else {				/* no terminal at all--default it */
  	buf[0] = '\n';
! 	r = 1;
      }
      if (r <= 0)
  	buf[0] = 0;
--- 260,268 ----
      }
      else {				/* no terminal at all--default it */
  	buf[0] = '\n';
! 	buf[1] = 0;
! 	say1(buf);
! 	return 0;			/* signal possible error */
      }
      if (r <= 0)
  	buf[0] = 0;
***************
*** 268,273 ****
--- 270,280 ----
  	buf[r] = '\0';
      if (!tty2)
  	say1(buf);
+ 
+     if (r <= 0)
+ 	return 0;			/* if there was an error, return it */
+     else
+ 	return 1;
  }
  #endif /* lint */
  
Index: util.h
===================================================================
RCS file: /usr/cvs/src/gnu/usr.bin/patch/util.h,v
retrieving revision 1.2
diff -c -r1.2 util.h
*** util.h	1995/05/30 05:02:38	1.2
--- util.h	1997/02/11 14:49:19
***************
*** 86,92 ****
  void say();
  void fatal();
  void pfatal();
! void ask();
  char *savestr();
  void set_signals();
  void ignore_signals();
--- 86,92 ----
  void say();
  void fatal();
  void pfatal();
! int ask();
  char *savestr();
  void set_signals();
  void ignore_signals();


John-Mark

gurney_j@efn.org
http://resnet.uoregon.edu/~gurney_j/
Modem/FAX: (541) 683-6954   (FreeBSD Box)

Live in Peace, destroy Micro$oft, support free software, run FreeBSD (unix)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.970211065311.24299i-100000>