Author: arekm                        Date: Mon Dec  1 08:29:40 2008 GMT
Module: SPECS                         Tag: HEAD
---- Log message:
Avoid loops.

---- Files affected:
SPECS:
   pldnotify.awk (1.66 -> 1.67) 

---- Diffs:

================================================================
Index: SPECS/pldnotify.awk
diff -u SPECS/pldnotify.awk:1.66 SPECS/pldnotify.awk:1.67
--- SPECS/pldnotify.awk:1.66    Sun Nov 30 17:57:36 2008
+++ SPECS/pldnotify.awk Mon Dec  1 09:29:34 2008
@@ -151,6 +151,17 @@
        return 0
 }
 
+function link_seen(link) {
+       for (seenlink in frameseen) {
+               if (seenlink == link) {
+                       if (DEBUG) print "Link: [" link "] seen already, 
skipping..."
+                       return 1
+               }
+       }
+       frameseen[link]=1
+       return 0
+}
+
 function 
get_links(url,filename,errno,link,oneline,retval,odp,wholeodp,lowerodp,tmpfile) 
{
 # get all <A HREF=..> tags from specified URL
        "mktemp /tmp/XXXXXX" | getline tmpfile
@@ -210,6 +221,12 @@
                                        newurl=(urldir newurl)
                                        if (DEBUG) print "Frame->: " newurl
                                }
+
+                               if (link_seen(newurl)) {
+                                       newurl=""
+                                       continue
+                               }
+
                                retval=(retval " " get_links(newurl))
                        } else if (lowerodp ~ /href=[ \t]*"[^"]*"/) {
                                sub(/[hH][rR][eE][fF]=[ \t]*"/,"href=\"",odp)
@@ -217,6 +234,12 @@
                                link=substr(odp,RSTART,RLENGTH)
                                odp=substr(odp,1,RSTART) 
substr(odp,RSTART+RLENGTH)
                                link=substr(link,7,length(link)-7)
+
+                               if (link_seen(link)) {
+                                       link=""
+                                       continue
+                               }
+
                                retval=(retval " " link)
                                if (DEBUG) print "href(\"\"): " link
                        } else if (lowerodp ~ /href=[ \t]*'[^']*'/) {
@@ -225,6 +248,12 @@
                                link=substr(odp,RSTART,RLENGTH)
                                odp=substr(odp,1,RSTART) 
substr(odp,RSTART+RLENGTH)
                                link=substr(link,7,length(link)-7)
+
+                               if (link_seen(link)) {
+                                       link=""
+                                       continue
+                               }
+
                                retval=(retval " " link)
                                if (DEBUG) print "href(''): " link
                        } else if (lowerodp ~ /href=[ \t]*[^ \t>]*/) {
@@ -233,6 +262,12 @@
                                link=substr(odp,RSTART,RLENGTH)
                                odp=substr(odp,1,RSTART) 
substr(odp,RSTART+RLENGTH)
                                link=substr(link,6,length(link)-5)
+
+                               if (link_seen(link)) {
+                                       link=""
+                                       continue
+                               }
+
                                retval=(retval " " link)
                                if (DEBUG) print "href(): " link
                        } else {
@@ -424,6 +459,7 @@
                for (i=3; i<ARGC; i++) ARGV[i-1]=ARGV[i]
                ARGC=ARGC-1
        }
+       frameseen[0] = 1
 }
 
 FNR==1 {
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SPECS/pldnotify.awk?r1=1.66&r2=1.67&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to