]> sjero.net Git - wget/blobdiff - src/spider.c
Eschew config-post.h.
[wget] / src / spider.c
index ee094127317f02f17b1b80d0184bdd430c7a2f39..391efc288f0e590ef9c564f0ec264633faa28b73 100644 (file)
@@ -1,5 +1,5 @@
 /* Keep track of visited URLs in spider mode.
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Wget.
 
@@ -26,13 +26,12 @@ 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.  */
 
-#include <config.h>
+#include "wget.h"
 
 #include <stdio.h>
 #include <errno.h>
 #include <assert.h>
 
-#include "wget.h"
 #include "spider.h"
 #include "url.h"
 #include "utils.h"
@@ -40,7 +39,6 @@ so, delete this exception statement from your version.  */
 #include "res.h"
 
 
-static struct hash_table *visited_urls_hash;
 static struct hash_table *nonexisting_urls_set;
 
 /* Cleanup the data structures associated with this file.  */
@@ -48,72 +46,10 @@ static struct hash_table *nonexisting_urls_set;
 void
 spider_cleanup (void)
 {
-  if (visited_urls_hash)
-    {
-      free_keys_and_values (visited_urls_hash);
-      hash_table_destroy (visited_urls_hash);
-      visited_urls_hash = NULL;
-    }
   if (nonexisting_urls_set)
     string_set_free (nonexisting_urls_set);
 }
 \f
-/* Remembers visited files.  */
-
-struct url_list 
-{
-  char *url;
-  struct url_list *next;
-};
-
-static bool
-in_url_list_p (const struct url_list *list, const char *url, bool verbose)
-{
-  const struct url_list *ptr;
-  
-  for (ptr = list; ptr; ptr = ptr->next)
-    {
-      /* str[case]cmp is inadequate for URL comparison */
-      if (are_urls_equal (url, ptr->url)) 
-        return true;
-    }
-  return false;
-}
-
-void
-visited_url (const char *url, const char *referrer)
-{
-  struct url_list *list;
-
-  /* Ignore robots.txt URLs */
-  if (is_robots_txt_url (url))
-    return;
-  
-  if (!visited_urls_hash)
-    visited_urls_hash = make_string_hash_table (0);
-
-  list = hash_table_get (visited_urls_hash, url);
-  if (!list)
-    {
-      list = (struct url_list *) xnew0 (struct url_list);
-      list->url = referrer ? xstrdup (referrer) : NULL;
-      hash_table_put (visited_urls_hash, xstrdup (url), list);
-    }
-  else if (referrer && !in_url_list_p (list, referrer, false)) 
-    {
-      /* Append referrer at the end of the list */
-      struct url_list *newnode;
-      
-      while (list->next) 
-        list = list->next;
-      
-      newnode = (struct url_list *) xnew0 (struct url_list);
-      newnode->url = xstrdup (referrer);
-      list->next = newnode;
-    }
-}
-\f
 /* Remembers broken links.  */
 void
 nonexisting_url (const char *url)
@@ -140,16 +76,10 @@ print_broken_links (void)
   
   num_elems = hash_table_count (nonexisting_urls_set);
   assert (num_elems > 0);
-  
-  if (num_elems > 1) 
-    {
-      logprintf (LOG_NOTQUIET, _("Found %d broken links.\n\n"), 
-                 num_elems);
-    }
-  else
-    {
-      logprintf (LOG_NOTQUIET, _("Found 1 broken link.\n\n"));
-    }
+
+  logprintf (LOG_NOTQUIET, ngettext("Found %d broken link.\n\n",
+                                    "Found %d broken links.\n\n", num_elems),
+             num_elems);
   
   for (hash_table_iterate (nonexisting_urls_set, &iter);
        hash_table_iter_next (&iter); )
@@ -157,13 +87,7 @@ print_broken_links (void)
       struct url_list *list;
       const char *url = (const char *) iter.key;
           
-      logprintf (LOG_NOTQUIET, _("%s referred by:\n"), url);
-      
-      for (list = (struct url_list *) hash_table_get (visited_urls_hash, url); 
-           list; list = list->next) 
-        {
-          logprintf (LOG_NOTQUIET, _("    %s\n"), list->url);
-        }
+      logprintf (LOG_NOTQUIET, _("%s\n"), url);
     }
   logputs (LOG_NOTQUIET, "\n");
 }