[interchange-cvs] interchange - jon modified code/UserTag/history_scan.tag

interchange-core@icdevgroup.org interchange-core@icdevgroup.org
Mon Jul 15 14:14:00 2002


User:      jon
Date:      2002-07-15 18:13:37 GMT
Modified:  code/UserTag history_scan.tag
Log:
Add optional count parameter to history_scan, which guarantees that the
returned link is at least count # of clicks back in the page history.

Revision  Changes    Path
1.3       +5 -5      interchange/code/UserTag/history_scan.tag


rev 1.3, prev_rev 1.2
Index: history_scan.tag
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/code/UserTag/history_scan.tag,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -u -r1.2 -r1.3
--- history_scan.tag	21 Mar 2002 18:08:36 -0000	1.2
+++ history_scan.tag	15 Jul 2002 18:13:36 -0000	1.3
@@ -7,9 +7,9 @@
 	mv_session_id         1
 /);
 sub {
-	my ($find, $exclude, $default) =3D @_;
-	my $ref =3D $Vend::Session->{History}
-		or return $Tag->area($default || $Config->{SpecialPage}{catalog});
+	my ($find, $exclude, $default, $opt) =3D @_;
+	$default ||=3D $Config->{SpecialPage}{catalog};
+	my $ref =3D $Vend::Session->{History} or return $Tag->area($default);
 	my ($hist, $href, $cgi);
 	$exclude =3D qr/$exclude/ if $exclude;
 	for(my $i =3D $#$ref; $i >=3D 0; $i--) {
@@ -21,11 +21,11 @@
 		if($find) {
 			next unless $ref->[$i][0] =3D~ /$find/;
 		}
+		next if abs($opt->{count}) >=3D (@$ref - $i);
 		($href, $cgi) =3D @{$ref->[$i]};
 		last;
 	}
-	return $Tag->area($default || $Config->{SpecialPage}{catalog})
-		if ! $href;
+	return $Tag->area($default) if ! $href;
 	my $form =3D '';
 	for(grep !$var_exclude{$_}, keys %$cgi) {
 		$form .=3D "\n$_=3D";