1/*
2 * Copyright 2013, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include "HyperLink.h"
8
9#include <errno.h>
10#include <stdlib.h>
11
12#include "TermConst.h"
13
14
15HyperLink::HyperLink()
16	:
17	fAddress(),
18	fType(TYPE_URL)
19{
20}
21
22
23HyperLink::HyperLink(const BString& address, Type type)
24	:
25	fText(address),
26	fAddress(address),
27	fType(type)
28{
29}
30
31
32HyperLink::HyperLink(const BString& text, const BString& address, Type type)
33	:
34	fText(text),
35	fAddress(address),
36	fType(type)
37{
38}
39
40
41status_t
42HyperLink::Open()
43{
44	if (!IsValid())
45		return B_BAD_VALUE;
46
47	// open with the "open" program
48	BString address(fAddress);
49	address.CharacterEscape(kShellEscapeCharacters, '\\');
50	BString commandLine;
51	commandLine.SetToFormat("/bin/open %s", address.String());
52	return system(commandLine) == 0 ? B_OK : errno;
53}
54