summaryrefslogtreecommitdiffstats
path: root/Objects/typeobject.c
blob: f7acaad123eeec0bdcb8b81972f246a0ccc62380 (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
/* Type object implementation */

#include <stdio.h>

#include "PROTO.h"
#include "object.h"
#include "stringobject.h"
#include "objimpl.h"

/* Type object implementation */

static void
typeprint(v, fp, flags)
	typeobject *v;
	FILE *fp;
	int flags;
{
	fprintf(fp, "<type '%s'>", v->tp_name);
}

static object *
typerepr(v)
	typeobject *v;
{
	char buf[100];
	sprintf(buf, "<type '%.80s'>", v->tp_name);
	return newstringobject(buf);
}

typedef struct {
	OB_HEAD
	long ob_ival;
} intobject;

typeobject Typetype = {
	OB_HEAD_INIT(&Typetype)
	0,			/* Number of items for varobject */
	"type",			/* Name of this type */
	sizeof(typeobject),	/* Basic object size */
	0,			/* Item size for varobject */
	0,		/*tp_dealloc*/
	typeprint,	/*tp_print*/
	0,		/*tp_getattr*/
	0,		/*tp_setattr*/
	0,		/*tp_compare*/
	typerepr,	/*tp_repr*/
};