diff options
| -rw-r--r-- | ChangeLog | 13 | ||||
| -rw-r--r-- | file.c | 51 | ||||
| -rw-r--r-- | istream.c | 23 | ||||
| -rw-r--r-- | main.c | 6 | ||||
| -rw-r--r-- | proto.h | 3 | 
5 files changed, 57 insertions, 39 deletions
| @@ -1,3 +1,14 @@ +2002-01-31  Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + +	* [w3m-dev 02933] segmentation fault when w3m -dump https: +	* file.c (readHeader): use inputAnswer() +	* file.c (getAuthCookie): remove term_cbreak() +	* file.c (checkOverWrite): use inputAnswer() +	* file.c (inputAnswer): added +	* istream.c (ssl_get_certificate): use inputAnswer() +	* main.c (qquitfm): change prompt  +	* proto.h (inputAnswer): added +  2002-01-30  Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>  	* [w3m-dev 02931] use POST in multipart.cgi @@ -2410,4 +2421,4 @@  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.276 2002/01/30 04:42:38 ukai Exp $ +$Id: ChangeLog,v 1.277 2002/01/30 15:08:48 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.50 2002/01/30 04:25:02 ukai Exp $ */ +/* $Id: file.c,v 1.51 2002/01/30 15:08:48 ukai Exp $ */  #include "fm.h"  #include <sys/types.h>  #include "myctype.h" @@ -731,16 +731,14 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)  			? "y" : NULL;  		    if (fmInitialized && (err & COO_OVERRIDE_OK) &&  			accept_bad_cookie == ACCEPT_BAD_COOKIE_ASK) { -			Str msg = -			    Sprintf -			    ("Accept bad cookie from %s for %s? (y or n) ", -			     pu->host, -			     domain -			     && domain->ptr ? domain->ptr : "<localdomain>"); -			if (msg->length > COLS - 4) -			    Strshrink(msg, msg->length - (COLS - 4)); -			term_raw(); -			ans = inputChar(msg->ptr); +			Str msg = Sprintf("Accept bad cookie from %s for %s?", +					  pu->host, +					  ((domain && domain->ptr) +					   ? domain->ptr : "<localdomain>")); +			if (msg->length > COLS - 10) +			    Strshrink(msg, msg->length - (COLS - 10)); +			Strcat_charp(msg, " (y/n)"); +			ans = inputAnswer(msg->ptr);  		    }  		    if (ans == NULL || tolower(*ans) != 'y' ||  			(err = @@ -1222,7 +1220,6 @@ getAuthCookie(struct http_auth *hauth, char *auth_header,  			   IN_PASSWORD)) == NULL)  		return NULL;  	    pwd = Str_conv_to_system(Strnew_charp(pp)); -	    term_cbreak();  	}  	else {  	    int proxy = !strncasecmp("Proxy-Authorization:", auth_header, @@ -6393,22 +6390,34 @@ int  checkOverWrite(char *path)  {      struct stat st; -    char buf[2]; -    char *ans = NULL; +    char *ans;      if (stat(path, &st) < 0)  	return 0; +    ans = inputAnswer("File exists. Overwrite? (y/n)"); +    if (ans && tolower(*ans) == 'y') +	return 0; +    else +	return -1; +} + +char * +inputAnswer(char *prompt) +{ +    char *ans; +    char buf[2]; +      if (fmInitialized) { -	ans = inputChar("File exists. Overwrite? (y or n)"); +	term_raw(); +	ans = inputChar(prompt);      }      else { -	printf("File exists. Overwrite? (y or n)"); -	ans = fgets(buf, 2, stdin); +	printf(prompt); +	fflush(stdout); +	fgets(buf, 2, stdin); +	ans = allocStr(buf, 1);      } -    if (ans != NULL && (*ans == '\0' || tolower(*ans) == 'y')) -	return 0; -    else -	return -1; +    return ans;  }  static void @@ -1,4 +1,4 @@ -/* $Id: istream.c,v 1.11 2002/01/12 13:33:47 ukai Exp $ */ +/* $Id: istream.c,v 1.12 2002/01/30 15:08:48 ukai Exp $ */  #include "fm.h"  #include "istream.h"  #include <signal.h> @@ -476,11 +476,10 @@ ssl_get_certificate(InputStream stream, char *hostname)  	    && strcasecmp(accept_this_site->ptr, hostname) == 0)  	    ans = "y";  	else { -	    emsg = Strnew_charp("No SSL peer certificate: accept (y/n)?"); -	    term_raw(); -	    ans = inputChar(emsg->ptr); +	    emsg = Strnew_charp("No SSL peer certificate: accept? (y/n)"); +	    ans = inputAnswer(emsg->ptr);  	} -	if (tolower(*ans) == 'y') +	if (ans && tolower(*ans) == 'y')  	    amsg = Strnew_charp  		("Accept SSL session without any peer certificate");  	else { @@ -510,11 +509,10 @@ ssl_get_certificate(InputStream stream, char *hostname)  		&& strcasecmp(accept_this_site->ptr, hostname) == 0)  		ans = "y";  	    else { -		emsg = Sprintf("%s: accept (y/n)?", em); -		term_raw(); -		ans = inputChar(emsg->ptr); +		emsg = Sprintf("%s: accept? (y/n)", em); +		ans = inputAnswer(emsg->ptr);  	    } -	    if (tolower(*ans) == 'y') { +	    if (ans && tolower(*ans) == 'y') {  		amsg = Sprintf("Accept unsecure SSL session: "  			       "unverified: %s", em);  	    } @@ -537,11 +535,10 @@ ssl_get_certificate(InputStream stream, char *hostname)  	    Str ep = Strdup(emsg);  	    if (ep->length > COLS - 16)  		Strshrink(ep, ep->length - (COLS - 16)); -	    term_raw(); -	    Strcat_charp(ep, ": accept(y/n)?"); -	    ans = inputChar(ep->ptr); +	    Strcat_charp(ep, ": accept? (y/n)"); +	    ans = inputAnswer(ep->ptr);  	} -	if (tolower(*ans) == 'y') { +	if (ans && tolower(*ans) == 'y') {  	    amsg = Strnew_charp("Accept unsecure SSL session:");  	    Strcat(amsg, emsg);  	} @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.73 2002/01/26 17:24:01 ukai Exp $ */ +/* $Id: main.c,v 1.74 2002/01/30 15:08:48 ukai Exp $ */  #define MAINPROGRAM  #include "fm.h"  #include <signal.h> @@ -2095,8 +2095,8 @@ qquitfm(void)      char *ans;      if (!confirm_on_quit)  	quitfm(); -    ans = inputChar("Do you want to exit w3m? (y or n)"); -    if (ans != NULL && tolower(*ans) == 'y') +    ans = inputChar("Do you want to exit w3m? (y/n)"); +    if (ans && tolower(*ans) == 'y')  	quitfm();      displayBuffer(Currentbuf, B_NORMAL);  } @@ -1,4 +1,4 @@ -/* $Id: proto.h,v 1.30 2002/01/29 19:08:50 ukai Exp $ */ +/* $Id: proto.h,v 1.31 2002/01/30 15:08:48 ukai Exp $ */  /*    *   This file was automatically generated by version 1.7 of cextract.   *   Manual editing not recommended. @@ -184,6 +184,7 @@ extern void doFileSave(URLFile uf, char *defstr);  extern int checkCopyFile(char *path1, char *path2);  extern int checkSaveFile(InputStream stream, char *path);  extern int checkOverWrite(char *path); +extern char *inputAnswer(char *prompt);  extern int matchattr(char *p, char *attr, int len, Str *value);  extern char *checkHeader(Buffer *buf, char *field);  extern Buffer *newBuffer(int width); | 
