File: tracing.cpp

package info (click to toggle)
kascade 1.0-beta10-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 964 kB
  • ctags: 815
  • sloc: cpp: 7,780; makefile: 39
file content (64 lines) | stat: -rw-r--r-- 1,048 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "category.h"
#include "currents.h"
#include "tracing.h"
#include "globals.h"
#include "navigation.h"

// back/forward tracing functions

void addTrace( Currents c )
{
    	if( backlast != backptr )
        	backTracev.erase( backTracev.begin()+backptr+1, backTracev.end() );

       	backTracev.push_back( c );
       	backptr++;
	backlast = backptr;	
}

void clearTrace()
{
    	backTracev.clear();
    	backptr = -1;
    	backlast = -1;
}

int backTrace()
{
    	if( backptr != -1 )
    	{
		Currents c; c.save();

		if( !clear_goto( backTracev[ backptr ].fullpath ) )
			return FALSE;

		if( backptr == backlast )
		{
            		addTrace( c );
	    		backptr--;
		}

       		backTracev[ backptr ].load_nocat();

        	backptr--;
		return TRUE;
    	}

    	return FALSE;
}

int fwdTrace()
{
    	if( backlast > backptr + 1 )
    	{
		if( !clear_goto( backTracev[ backptr + 2 ].fullpath ) )
			return FALSE;
        	backTracev[ backptr + 2 ].load_nocat();

        	backptr++;
        	return TRUE;
    	}

    	return FALSE;
}