aboutsummaryrefslogtreecommitdiff
path: root/src/functionunlink.cpp
blob: d8ad8996e8644aeae12c2ec8ac7b31d7b00dfeab (plain)
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
#include "functionunlink.h"

#include <unistd.h>
#include <stdlib.h>
#include <bu/sio.h>
using namespace Bu;

#include <bu/plugger.h>
PluginInterface3( pluginFunctionUnlink, unlink, FunctionUnlink, Function,
		"Mike Buland", 0, 1 );

FunctionUnlink::FunctionUnlink()
{
}

FunctionUnlink::~FunctionUnlink()
{
}

Bu::FString FunctionUnlink::getName() const
{
	return "unlink";
}

Variable FunctionUnlink::call( Variable &/*input*/, VarList lParams )
{
	//sio << "Unlink called: " << lParams << sio.nl;
	for( VarList::iterator p = lParams.begin(); p; p++ )
	{
		switch( (*p).getType() )
		{
			case Variable::typeString:
				//sio << " xx> " << (*p).getString() << sio.nl;
				unlink( (*p).getString().getStr() );
				break;

			case Variable::typeList:
				//sio << " xx>";
				for( VarList::iterator i = (*p).begin(); i; i++ )
				{
					//sio << " " << (*i).getString();
					unlink( (*i).getString().getStr() );
				}
				//sio << sio.nl;
				break;

			default:
				throw Bu::ExceptionBase("Hey, wrong type passed.");
				break;
		}
	}

	return Variable();
}