]> sjero.net Git - wget/blobdiff - src/convert.c
Use Gnulib's xalloc module in convert.c (and include according header).
[wget] / src / convert.c
index 8f04ed0c95b82c686797c7c9bc276b39c3ae7ae8..bf65f53d4af00616d8c6e83bfe4d3b65d0572652 100644 (file)
@@ -1,5 +1,6 @@
 /* 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.
 
@@ -16,17 +17,20 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with Wget.  If not, see <http://www.gnu.org/licenses/>.
 
-In addition, as a special exception, the Free Software Foundation
-gives permission to link the code of its release of Wget with the
-OpenSSL project's "OpenSSL" library (or with modified versions of it
-that use the same license as the "OpenSSL" library), and distribute
-the linked executables.  You must obey the GNU General Public License
-in all respects for all of the code used other than "OpenSSL".  If you
-modify this file, you may extend this exception to your version of the
-file, but you are not obligated to do so.  If you do not wish to do
-so, delete this exception statement from your version.  */
+Additional permission under GNU GPL version 3 section 7
 
-#include <config.h>
+If you modify this program, or any covered work, by linking or
+combining it with the OpenSSL project's OpenSSL library (or a
+modified version of that library), containing parts covered by the
+terms of the OpenSSL or SSLeay licenses, the Free Software Foundation
+grants you additional permission to convey the resulting work.
+Corresponding Source for a non-source form of such a combination
+shall include the source code for the parts of OpenSSL used as well
+as that of the covered work.  */
+
+#define USE_GNULIB_ALLOC
+
+#include "wget.h"
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -36,8 +40,6 @@ so, delete this exception statement from your version.  */
 #endif /* HAVE_UNISTD_H */
 #include <errno.h>
 #include <assert.h>
-
-#include "wget.h"
 #include "convert.h"
 #include "url.h"
 #include "recur.h"
@@ -86,8 +88,8 @@ convert_all_links (void)
   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++)
@@ -167,9 +169,10 @@ convert_all_links (void)
     }
 
   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);
@@ -229,8 +232,8 @@ convert_links (const char *file, struct urlpos *links)
      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;
     }
@@ -284,8 +287,8 @@ convert_links (const char *file, struct urlpos *links)
 
             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;
           }
@@ -303,7 +306,7 @@ convert_links (const char *file, struct urlpos *links)
 
             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;
           }
@@ -687,8 +690,8 @@ dissociate_urls_from_file_mapper (void *key, void *value, void *arg)
   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. */
@@ -738,8 +741,8 @@ register_download (const char *url, const char *file)
         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
@@ -779,8 +782,8 @@ register_download (const char *url, const char *file)
   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));
@@ -816,8 +819,8 @@ register_delete_file (const char *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);
 }
 
@@ -947,7 +950,7 @@ downloaded_files_free (void)
       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;
     }