File: Delta.xs

package info (click to toggle)
libgit-raw-perl 0.87%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,464 kB
  • sloc: perl: 5,404; ansic: 182; makefile: 6
file content (108 lines) | stat: -rw-r--r-- 2,047 bytes parent folder | download | duplicates (4)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
MODULE = Git::Raw			PACKAGE = Git::Raw::Diff::Delta

SV *
status(self)
	Diff_Delta self

	PREINIT:
		const char *status = NULL;

	CODE:
		if (self -> status == GIT_DELTA_UNMODIFIED)
			status = "unmodified";
		else if (self -> status == GIT_DELTA_ADDED)
			status = "added";
		else if (self -> status == GIT_DELTA_DELETED)
			status = "deleted";
		else if (self -> status == GIT_DELTA_MODIFIED)
			status = "modified";
		else if (self -> status == GIT_DELTA_RENAMED)
			status = "renamed";
		else if (self -> status == GIT_DELTA_COPIED)
			status = "copied";
		else if (self -> status == GIT_DELTA_IGNORED)
			status = "ignored";
		else if (self -> status == GIT_DELTA_UNTRACKED)
			status = "untracked";
		else if (self -> status == GIT_DELTA_TYPECHANGE)
			status = "type_change";
		else if (self -> status == GIT_DELTA_UNREADABLE)
			status = "unreadable";
		else if (self -> status == GIT_DELTA_CONFLICTED)
			status = "conflicted";

		RETVAL = newSVpv (status, 0);

	OUTPUT: RETVAL

SV *
flags(self)
	Diff_Delta self

	PREINIT:
		AV *flags = newAV();

	CODE:
		if (self -> flags & GIT_DIFF_FLAG_BINARY)
			av_push(flags, newSVpv("binary", 0));
		if (self -> flags & GIT_DIFF_FLAG_VALID_ID)
			av_push(flags, newSVpv("valid_id", 0));

		RETVAL = newRV_noinc((SV *) flags);

	OUTPUT: RETVAL

SV *
similarity(self)
	Diff_Delta self

	CODE:
		RETVAL = newSVuv(self -> similarity);

	OUTPUT: RETVAL

SV *
file_count(self)
	Diff_Delta self

	CODE:
		RETVAL = newSVuv(self -> nfiles);

	OUTPUT: RETVAL

SV *
old_file(self)
	SV *self

	PREINIT:
		Diff_Delta self_ptr;

	CODE:
		self_ptr = GIT_SV_TO_PTR(Diff::Delta, self);

		GIT_NEW_OBJ_WITH_MAGIC(
			RETVAL, "Git::Raw::Diff::File", &self_ptr -> old_file, SvRV(self));

	OUTPUT: RETVAL

SV *
new_file(self)
	SV *self

	PREINIT:
		Diff_Delta self_ptr;

	CODE:
		self_ptr = GIT_SV_TO_PTR(Diff::Delta, self);

		GIT_NEW_OBJ_WITH_MAGIC(
			RETVAL, "Git::Raw::Diff::File", &self_ptr -> new_file, SvRV(self));

	OUTPUT: RETVAL

void
DESTROY(self)
	SV *self

	CODE:
		SvREFCNT_dec(GIT_SV_TO_MAGIC(self));