diff options
| author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-01-11 20:05:58 +0000 | 
|---|---|---|
| committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-01-11 20:05:58 +0000 | 
| commit | b9cf2cda0de67eaf433ea67ed666a1c5447df0a3 (patch) | |
| tree | a1b401ac126f011a6d2d8fdf5b58fe426c70d466 | |
| parent | run make indent (diff) | |
| download | w3m-b9cf2cda0de67eaf433ea67ed666a1c5447df0a3.tar.gz w3m-b9cf2cda0de67eaf433ea67ed666a1c5447df0a3.zip | |
[w3m-dev 02822] Print FTP directory list for -dump_extra option
From: Fumitoshi UKAI  <ukai@debian.or.jp>
Diffstat (limited to '')
| -rw-r--r-- | ChangeLog | 12 | ||||
| -rw-r--r-- | file.c | 20 | ||||
| -rw-r--r-- | ftp.c | 35 | ||||
| -rw-r--r-- | proto.h | 3 | 
4 files changed, 52 insertions, 18 deletions
| @@ -1,3 +1,13 @@ +2002-01-12  Fumitoshi UKAI  <ukai@debian.or.jp> + +	* [w3m-dev 02822] Print FTP directory list for -dump_extra option +	* file.c (loadGeneralFile): remove FTPDIRtmp, use readFTPDir() instead +		save to buf->sourcefile for -dump_extra +	* ftp.c (FTPDIRtmp): deleted +	* ftp.c (openFTP): delete readFTPDir() part +	* ftp.c (readFTPDir): added +	* proto.h (readFTPDir): added +  2002-01-11  Akinori Ito <aito@fw.ipsj.or.jp>  	* [w3m-dev 02819] @@ -1849,4 +1859,4 @@  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.207 2002/01/11 02:24:13 a-ito Exp $ +$Id: ChangeLog,v 1.208 2002/01/11 20:05:58 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.39 2001/12/27 18:01:52 ukai Exp $ */ +/* $Id: file.c,v 1.40 2002/01/11 20:05:58 ukai Exp $ */  #include "fm.h"  #include <sys/types.h>  #include "myctype.h" @@ -1018,23 +1018,35 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,  	/* openURL failure: it means either (1) the requested URL is a directory name  	 * on an FTP server, or (2) is a local directory name.   	 */ -	extern Str FTPDIRtmp;  	if (fmInitialized && prevtrap) {  	    term_raw();  	    signal(SIGINT, prevtrap);  	}  	switch (f.scheme) {  	case SCM_FTPDIR: -	    if (FTPDIRtmp->length > 0) { -		b = loadHTMLString(FTPDIRtmp); +	{ +	    Str ftpdir = readFTPDir(&pu); +	    if (ftpdir && ftpdir->length > 0) { +		FILE *src; +		tmp = tmpfname(TMPF_SRC, ".html"); +		pushText(fileToDelete, tmp->ptr); +		src = fopen(tmp->ptr, "w"); +		if (src) { +		    Strfputs(ftpdir, src); +		    fclose(src); +		} +		b = loadHTMLString(ftpdir);  		if (b) {  		    if (b->currentURL.host == NULL  			&& b->currentURL.file == NULL)  			copyParsedURL(&b->currentURL, &pu);  		    b->real_scheme = pu.scheme; +		    if (src) +			b->sourcefile = tmp->ptr;  		}  		return b;  	    } +	}  	    break;  	case SCM_LOCAL:  	    { @@ -1,4 +1,4 @@ -/* $Id: ftp.c,v 1.9 2001/12/25 18:15:00 ukai Exp $ */ +/* $Id: ftp.c,v 1.10 2002/01/11 20:05:58 ukai Exp $ */  #include <stdio.h>  #include <pwd.h>  #include <Str.h> @@ -374,8 +374,6 @@ FtpBye(FTP ftp)  } -Str FTPDIRtmp; -  static int ex_ftpdir_name_size_date(char *, char **, char **, char **);  static int ftp_system(FTP); @@ -392,15 +390,9 @@ openFTP(ParsedURL *pu)  {      Str tmp2 = Strnew();      Str tmp3 = Strnew(); -    Str host;      STATUS s; -    Str curdir;      char *user;      char *pass; -    char *fn; -    char *qdir; -    char **flist; -    int i, nfile, nfile_max = 100;      Str pwd = NULL;      int add_auth_cookie_flag;      char *realpathname = NULL; @@ -408,7 +400,6 @@ openFTP(ParsedURL *pu)      char code = '\0', ic;      Str pathStr;  #endif -    int sv_type;      add_auth_cookie_flag = 0;      if (pu->user) @@ -487,7 +478,26 @@ openFTP(ParsedURL *pu)      }    ftp_dir1:      pu->scheme = SCM_FTPDIR; -    FTPDIRtmp = Strnew(); +    return NULL; +} + +Str +readFTPDir(ParsedURL *pu) +{ +    Str FTPDIRtmp = Strnew(); +    Str host; +    Str curdir; +    char *fn; +    char *qdir; +    char **flist; +    int i, nfile, nfile_max = 100; +    int sv_type; +    STATUS s; +    char *realpathname = NULL; +    Str tmp2 = Strnew(); + +    if (current_ftp->data == NULL) +	return FTPDIRtmp;      sv_type = ftp_system(current_ftp);      if (pu->file == NULL || *pu->file == '\0') {  	if (sv_type == UNIXLIKE_SERVER) { @@ -499,6 +509,7 @@ openFTP(ParsedURL *pu)  	curdir = Strnew_charp("/");      }      else { +	realpathname = file_unquote(pu->file);  	if (sv_type == UNIXLIKE_SERVER) {  	    s = FtpCwd(current_ftp, realpathname);  	    if (!FtpError(s)) { @@ -656,7 +667,7 @@ openFTP(ParsedURL *pu)      FtpClose(current_ftp);      FtpBye(current_ftp); -    return NULL; +    return FTPDIRtmp;  }  static int @@ -1,4 +1,4 @@ -/* $Id: proto.h,v 1.22 2001/12/26 18:29:33 ukai Exp $ */ +/* $Id: proto.h,v 1.23 2002/01/11 20:05:58 ukai Exp $ */  /*    *   This file was automatically generated by version 1.7 of cextract.   *   Manual editing not recommended. @@ -424,6 +424,7 @@ extern char *guessContentType(char *filename);  extern TextList *make_domain_list(char *domain_list);  extern int check_no_proxy(char *domain);  extern FILE *openFTP(ParsedURL *pu); +extern Str readFTPDir(ParsedURL *pu);  extern void closeFTP(FILE * f);  extern int Ftpfclose(FILE * f);  extern AnchorList *putAnchor(AnchorList *al, char *url, char *target, | 
