X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fftp-ls.c;h=9e35f27afb30fc4e91ec4a5702258aa86c40fbcf;hb=fe777884cfd41589dc79648ec0c36b921eadd7b5;hp=ca56a0948e887fdd26b672c902332b970cecb758;hpb=277e840a0f8e3ec8800cfe7407fe3c16000bc622;p=wget diff --git a/src/ftp-ls.c b/src/ftp-ls.c index ca56a094..9e35f27a 100644 --- a/src/ftp-ls.c +++ b/src/ftp-ls.c @@ -1,6 +1,5 @@ /* Parsing FTP `ls' output. - Copyright (C) 1995, 1996, 1997, 2000, 2001 - Free Software Foundation, Inc. + Copyright (C) 1996-2004 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -15,8 +14,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Wget; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +along with Wget; if not, write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. In addition, as a special exception, the Free Software Foundation gives permission to link the code of its release of Wget with the @@ -44,8 +43,7 @@ so, delete this exception statement from your version. */ #include "ftp.h" #include "url.h" #include "convert.h" /* for html_quote_string prototype */ - -extern FILE *output_stream; +#include "retr.h" /* for output_stream */ /* Converts symbolic permissions to number-style ones, e.g. string rwxr-xr-x to 755. For now, it knows nothing of @@ -106,7 +104,7 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) struct tm timestruct, *tnow; time_t timenow; - char *line, *tok; /* tokenizer */ + char *line, *tok, *ptok; /* tokenizer */ struct fileinfo *dir, *l, cur; /* list creation */ fp = fopen (file, "rb"); @@ -197,7 +195,9 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) This tactic is quite dubious when it comes to internationalization issues (non-English month names), but it works for now. */ - while ((tok = strtok (NULL, " ")) != NULL) + ptok = line; + while (ptok = tok, + (tok = strtok (NULL, " ")) != NULL) { --next; if (next < 0) /* a month name was not encountered */ @@ -213,7 +213,7 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) /* Back up to the beginning of the previous token and parse it with str_to_wgint. */ - char *t = tok - 2; + char *t = ptok; while (t > line && ISDIGIT (*t)) --t; if (t == line) @@ -330,7 +330,7 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) default -F output. I believe these cases are very rare. */ fnlen = strlen (tok); /* re-calculate `fnlen' */ - cur.name = (char *)xmalloc (fnlen + 1); + cur.name = xmalloc (fnlen + 1); memcpy (cur.name, tok, fnlen + 1); if (fnlen) { @@ -644,7 +644,8 @@ ftp_parse_vms_ls (const char *file) tok = strtok(line, " "); if (tok == NULL) tok = line; DEBUGP(("file name: '%s'\n", tok)); - for (p = tok ; *p && *p != ';' ; p++); + for (p = tok ; *p && *p != ';' ; p++) + ; if (*p == ';') *p = '\0'; p = tok + strlen(tok) - 4; if (!strcmp(p, ".DIR")) *p = '\0'; @@ -726,10 +727,12 @@ ftp_parse_vms_ls (const char *file) min = sec = 0; p = tok; hour = atoi (p); - for (; *p && *p != ':'; ++p); + for (; *p && *p != ':'; ++p) + ; if (*p) min = atoi (++p); - for (; *p && *p != ':'; ++p); + for (; *p && *p != ':'; ++p) + ; if (*p) sec = atoi (++p); @@ -775,14 +778,14 @@ ftp_parse_vms_ls (const char *file) /* And put everything into the linked list */ if (!dir) { - l = dir = (struct fileinfo *)xmalloc (sizeof (struct fileinfo)); + l = dir = xnew (struct fileinfo); memcpy (l, &cur, sizeof (cur)); l->prev = l->next = NULL; } else { cur.prev = l; - l->next = (struct fileinfo *)xmalloc (sizeof (struct fileinfo)); + l->next = xnew (struct fileinfo); l = l->next; memcpy (l, &cur, sizeof (cur)); l->next = NULL; @@ -936,7 +939,7 @@ ftp_index (const char *file, struct url *u, struct fileinfo *f) putc ('/', fp); fprintf (fp, " "); if (f->type == FT_PLAINFILE) - fprintf (fp, _(" (%s bytes)"), with_thousand_seps (f->size)); + fprintf (fp, _(" (%s bytes)"), number_to_static_string (f->size)); else if (f->type == FT_SYMLINK) fprintf (fp, "-> %s", f->linkto ? f->linkto : "(nil)"); putc ('\n', fp);