From dfd33cccd5e2b4d169eb0f0ca7cccfc998b979b2 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Wed, 15 Jan 2003 16:11:43 +0000 Subject: [w3m-dev 03640] Re: cleanup (don't close connection of news server) * anchor.c (_put_ahchor_news): always conv_str (_put_anchor_all): always conv_str * etc.c (close_all_fds): deleted (close_all_fds_except): added, except fd=f is left open * file.c (guess_filename): added (UFhalfclose): added (convertLine): cleanup_line if not raw mode check uf (readHeader): always convertLine (loadGeneralFile): rewrite (loadGopherDir): return Str, args change to ParsedURL and code rewrite (saveBuffer): always conv_str (_doFileCopy): close_all_fds (doFileSave): close_all_fds_except (uncompress_stream): dup, close_all_fds_except * form.c (form_fputs_decode): always conv_str (input_textarea): convertLine * frame.c (createFrameFile): convertLine * ftp.c (loadFTPDir): arg code rewrite (readFTPDir): convertLine * html.h (UFfileno): added * image.c (loadImage): close_all_fds * indep.h (RAW_MODE): added * local.c (loadLocalDir): return Str (dirBuffer): rewrite (localcgi_popen_r): close_all_fds * main.c (main): check SCM_LOCAL print err_msg * news.c (news_command): args cmd and arg (news_quit): news_command (openNewsStream): news_command (readNewsgroup): deleted (loadNewsgroup): added (closeNews): added * proto.h (loadGopherDir): update (conv_str): define for no JP_CHARSET (readFTPDir): deleted (loadFTPDir): added (readNewsgroup): deleted (loadNewsgroup): added (dirBuffer): deleted (loadLocalDir): added (close_all_fds): defined by close_all_fds_except (close_all_fds_except): added From: Hironori SAKAMOTO --- ftp.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'ftp.c') diff --git a/ftp.c b/ftp.c index 7db34a0..447f210 100644 --- a/ftp.c +++ b/ftp.c @@ -1,4 +1,4 @@ -/* $Id: ftp.c,v 1.23 2003/01/11 16:00:56 ukai Exp $ */ +/* $Id: ftp.c,v 1.24 2003/01/15 16:11:43 ukai Exp $ */ #include #include #include @@ -411,15 +411,18 @@ openFTPStream(ParsedURL *pu, URLFile *uf) } Str -readFTPDir(ParsedURL *pu) +loadFTPDir(ParsedURL *pu, char *code) { Str FTPDIRtmp; Str tmp; int status, sv_type; - char *realpathname, *fn; + char *realpathname, *fn, *q; char **flist; int i, nfile, nfile_max = 100; +#ifdef JP_CHARSET + *code = DocumentCode; +#endif if (current_ftp.data == NULL) return NULL; tmp = ftp_command(¤t_ftp, "SYST", NULL, &status); @@ -453,13 +456,16 @@ readFTPDir(ParsedURL *pu) if (Strlastchar(tmp) != '/') Strcat_char(tmp, '/'); fn = html_quote(tmp->ptr); - FTPDIRtmp = Strnew_m_charp("", fn, - "

Index of ", fn, + tmp = convertLine(NULL, Strnew_charp(file_unquote(tmp->ptr)), code, NULL); + q = html_quote(tmp->ptr); + FTPDIRtmp = Strnew_m_charp("\n\n\n", q, + "\n\n\n

Index of ", q, "

\n", NULL); if (sv_type == UNIXLIKE_SERVER) - Strcat_charp(FTPDIRtmp, "
");
+	Strcat_charp(FTPDIRtmp, "
\n");
     else
-	Strcat_charp(FTPDIRtmp, "
\n"); + Strcat_charp(FTPDIRtmp, "
\n"); } else { while (tmp = Strfgets(current_ftp.data), tmp->length > 0) { @@ -550,12 +557,15 @@ readFTPDir(ParsedURL *pu) qsort(flist, nfile, sizeof(char *), strCmp); for (i = 0; i < nfile; i++) { fn = flist[i]; + tmp = convertLine(NULL, Strnew_charp(fn), code, NULL); Strcat_m_charp(FTPDIRtmp, "
  • ", html_quote(fn), - "\n", NULL); + html_quote(file_quote(fn)), "\">", + html_quote(tmp->ptr), "\n", NULL); } - Strcat_charp(FTPDIRtmp, "\n"); + Strcat_charp(FTPDIRtmp, "\n"); } + Strcat_charp(FTPDIRtmp, "\n\n"); + closeFTPdata(current_ftp.data); return FTPDIRtmp; } -- cgit v1.2.3