diff options
| -rw-r--r-- | file.c | 30 | ||||
| -rw-r--r-- | url.c | 2 | 
2 files changed, 30 insertions, 2 deletions
| @@ -1713,6 +1713,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,      Str tmp;      Str volatile page = NULL;  #ifdef USE_GOPHER +    int gopher_download = FALSE;  #endif  #ifdef USE_M17N      wc_ces charset = WC_CES_US_ASCII; @@ -1993,8 +1994,15 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,  	case 'h':  	    t = "text/html";  	    break; +	case 'I': +	    t = guessContentType(pu.file); +	    if(strncasecmp(t, "image/", 6) != 0) { +		t = "image/png"; +	    } +	    break; +	case '5':  	case '9': -	    do_download = 1; +	    gopher_download = TRUE;  	    break;  	}      } @@ -2116,7 +2124,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,  	    Strfputs(s, src);  	    fclose(src);  	} +#ifdef USE_GOPHER +	if (do_download || gopher_download) { +#else  	if (do_download) { +#endif  	    char *file;  	    if (!src)  		return NULL; @@ -2153,7 +2165,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,      current_content_length = 0;      if ((p = checkHeader(t_buf, "Content-Length:")) != NULL)  	current_content_length = strtoclen(p); +#ifdef USE_GOPHER +    if (do_download || gopher_download) { +#else      if (do_download) { +#endif  	/* download only */  	char *file;  	TRAP_OFF; @@ -2219,7 +2235,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,  #endif      else if (w3m_backend) ;      else if (!(w3m_dump & ~DUMP_FRAME) || is_dump_text_type(t)) { -	if (!do_download && searchExtViewer(t) != NULL) { +	if (!do_download &&  +#ifdef USE_GOPHER +		!gopher_download && +#endif +		searchExtViewer(t) != NULL) {  	    proc = DO_EXTERNAL;  	}  	else { @@ -7473,6 +7493,9 @@ loadGopherDir0(URLFile *uf, ParsedURL *pu)  	case '1':  	    p = "[directory]";  	    break; +	case '5': +	    p = "[DOS binary]"; +	    break;  	case '7':  	    p = "[search]";  	    break; @@ -7491,6 +7514,9 @@ loadGopherDir0(URLFile *uf, ParsedURL *pu)  	case 'i':  	    link = 0;  	    break; +	case 'I': +	    p = "[image]"; +	    break;  	case '9':  	    p = "[binary]";  	    break; @@ -1853,6 +1853,8 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    case 's':  	    case 'g':  	    case 'h': +	    case 'I': +	    case '5':  	    case '7':  	    case '9':  	      tmp = Strnew_charp(pu->file); | 
