diff src/scanner.cpp @ 27:43a4f6b3e668 stable-2-3

add configurable host name limit and bad html tag limits.
author carl
date Sat, 22 May 2004 22:30:45 -0700
parents 6176e7b2e8af
children 33e1e3910506
line wrap: on
line diff
--- a/src/scanner.cpp	Fri May 21 21:55:38 2004 -0700
+++ b/src/scanner.cpp	Sat May 22 22:30:45 2004 -0700
@@ -179,7 +179,7 @@
     {h_init, h_end,  t_init, t_disc, t_disc, u_init, u_init, u_init, u_reco, d_init, d_init, d_init, e_init, e_init, e_init, m_eq,   m_init, m_init, b_init, b_64,   b_64,   b_64,    },  // 0x3D =
     {h_init, h_end,  t_init, t_end,  t_end,  u_init, u_init, u_init, u_reco, d_init, d_init, d_init, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init,  },  // 0x3E >
     {h_init, h_end,  t_init, t_disc, t_disc, u_init, u_init, u_init, u_reco, d_init, d_init, d_init, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init,  },  // 0x3F ?
-    {h_init, h_end,  t_init, t_disc, t_disc, u_init, u_init, u_init, u_reco, d_init, d_init, d_init, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init,  },  // 0x40 @
+    {h_init, h_host, t_init, t_disc, t_disc, u_init, u_init, u_init, u_reco, d_init, d_init, d_init, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init,  },  // 0x40 @
     {h_host, h_host, t_init, t_tag,  t_disc, u_init, u_init, u_url,  u_url,  d_init, d_1,    d_2,    e_init, e_init, e_init, m_init, m_1,    m_2,    b_init, b_64,   b_64,   b_64,    },  // 0x41 A
     {h_host, h_host, t_init, t_tag,  t_disc, u_init, u_init, u_url,  u_url,  d_init, d_1,    d_2,    e_init, e_init, e_init, m_init, m_1,    m_2,    b_init, b_64,   b_64,   b_64,    },  // 0x42 B
     {h_host, h_host, t_init, t_tag,  t_disc, u_init, u_init, u_url,  u_url,  d_init, d_1,    d_2,    e_init, e_init, e_init, m_init, m_1,    m_2,    b_init, b_64,   b_64,   b_64,    },  // 0x43 C
@@ -379,6 +379,7 @@
     ".net",
     ".org",
     ".biz",
+    ".info",
     NULL
 };
 
@@ -950,6 +951,8 @@
             //  host name recognizer
             case h_end: {
                 pending[--count] = '\0';  // null terminate host name by overwriting the terminator
+                if (!strchr((const char *)pending, '@')) {
+                    // not an email address or message id
                 char *tld;
                 for (int i=0; (tld = tlds[i]); i++) {
                     int n = strlen(tld);
@@ -960,6 +963,7 @@
                         }
                     }
                 }
+                }
                 st = h_init;
                 } // fall thru