/* Conversion of links to local files.
- Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006, 2007,
+ 2008 Free Software Foundation, Inc.
This file is part of GNU Wget.
shall include the source code for the parts of OpenSSL used as well
as that of the covered work. */
-#include <config.h>
+#define USE_GNULIB_ALLOC
+
+#include "wget.h"
#include <stdio.h>
#include <stdlib.h>
#endif /* HAVE_UNISTD_H */
#include <errno.h>
#include <assert.h>
-
-#include "wget.h"
#include "convert.h"
#include "url.h"
#include "recur.h"
if (downloaded_html_set)
cnt = hash_table_count (downloaded_html_set);
if (cnt == 0)
- return;
- file_array = alloca_array (char *, cnt);
+ goto cleanup;
+ file_array = xcalloc (cnt, sizeof (char *));
string_set_to_array (downloaded_html_set, file_array);
for (i = 0; i < cnt; i++)
}
secs = ptimer_measure (timer);
- ptimer_destroy (timer);
logprintf (LOG_VERBOSE, _("Converted %d files in %s seconds.\n"),
file_count, print_decimal (secs));
+cleanup:
+ ptimer_destroy (timer);
}
static void write_backup_file (const char *, downloaded_file_t);
zeroes from the mmaped region. */
if (unlink (file) < 0 && errno != ENOENT)
{
- logprintf (LOG_NOTQUIET, _("Unable to delete `%s': %s\n"),
- file, strerror (errno));
+ logprintf (LOG_NOTQUIET, _("Unable to delete %s: %s\n"),
+ quote (file), strerror (errno));
read_file_free (fm);
return;
}
DEBUGP (("TO_RELATIVE: %s to %s at position %d in %s.\n",
link->url->url, newname, link->pos, file));
- xfree (newname);
- xfree (quoted_newname);
+ free (newname);
+ free (quoted_newname);
++to_file_count;
break;
}
DEBUGP (("TO_COMPLETE: <something> to %s at position %d in %s.\n",
newlink, link->pos, file));
- xfree (quoted_newlink);
+ free (quoted_newlink);
++to_url_count;
break;
}
if (0 == strcmp (mapping_file, file))
{
hash_table_remove (dl_url_file_map, mapping_url);
- xfree (mapping_url);
- xfree (mapping_file);
+ free (mapping_url);
+ free (mapping_file);
}
/* Continue mapping. */
goto url_only;
hash_table_remove (dl_file_url_map, file);
- xfree (old_file);
- xfree (old_url);
+ free (old_file);
+ free (old_url);
/* Remove all the URLs that point to this file. Yes, there can
be more than one such URL, because we store redirections as
if (hash_table_get_pair (dl_url_file_map, url, &old_url, &old_file))
{
hash_table_remove (dl_url_file_map, url);
- xfree (old_url);
- xfree (old_file);
+ free (old_url);
+ free (old_file);
}
hash_table_put (dl_url_file_map, xstrdup (url), xstrdup (file));
return;
hash_table_remove (dl_file_url_map, file);
- xfree (old_file);
- xfree (old_url);
+ free (old_file);
+ free (old_url);
dissociate_urls_from_file (file);
}
for (hash_table_iterate (downloaded_files_hash, &iter);
hash_table_iter_next (&iter);
)
- xfree (iter.key);
+ free (iter.key);
hash_table_destroy (downloaded_files_hash);
downloaded_files_hash = NULL;
}