summaryrefslogtreecommitdiffstats
path: root/Modules/config.c.in
blob: 50cca43ca82ab677ef36a5262a48a840ebcc8022 (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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/* Configurable Python configuration file */

#include <stdio.h>

#ifdef USE_STDWIN
#include <stdwin.h>

static int use_stdwin;
#endif

/*ARGSUSED*/
void
initargs(p_argc, p_argv)
	int *p_argc;
	char ***p_argv;
{
#ifdef USE_STDWIN
	extern char *getenv();
	char *display;

	/* Ignore an initial argument of '-s', for backward compatibility */
	if (*p_argc > 1 && strcmp((*p_argv)[1], "-s") == 0) {
		(*p_argv)[1] = (*p_argv)[0];
		(*p_argc)--, (*p_argv)++;
	}

	/* Assume we have to initialize stdwin if either of the following
	   conditions holds:
	   - the environment variable $DISPLAY is set
	   - there is an argument "-display" somewhere
	*/
	
	display = getenv("DISPLAY");
	if (display != 0)
		use_stdwin = 1;
	else {
		int i;
		/* Scan through the arguments looking for "-display" */
		for (i = 1; i < *p_argc; i++) {
			if (strcmp((*p_argv)[i], "-display") == 0) {
				use_stdwin = 1;
				break;
			}
		}
	}
	
	if (use_stdwin)
		wargs(p_argc, p_argv);
#endif
}

void
initcalls()
{
}

void
donecalls()
{
#ifdef USE_STDWIN
	if (use_stdwin)
		wdone();
#endif
#ifdef USE_AUDIO
	asa_done();
#endif
}

#ifdef USE_STDWIN
static void
maybeinitstdwin()
{
	if (use_stdwin)
		initstdwin();
	else
		fprintf(stderr,
		 "No $DISPLAY nor -display arg -- stdwin not available\n");
}
#endif

#ifndef PYTHONPATH
#define PYTHONPATH ".:/usr/local/lib/python"
#endif

extern char *getenv();

char *
getpythonpath()
{
	char *path = getenv("PYTHONPATH");
	if (path == 0)
		path = PYTHONPATH;
	return path;
}


/* Table of built-in modules.
   These are initialized when first imported. */

/* Standard modules */
extern void inittime();
extern void initmath();
extern void initregexp();
extern void initposix();
#ifdef USE_AUDIO
extern void initaudio();
#endif
#ifdef USE_AMOEBA
extern void initamoeba();
#endif
#ifdef USE_GL
extern void initgl();
#ifdef USE_PANEL
extern void initpanel();
#endif
#endif
#ifdef USE_STDWIN
extern void maybeinitstdwin();
#endif

struct {
	char *name;
	void (*initfunc)();
} inittab[] = {

	/* Standard modules */

	{"time",	inittime},
	{"math",	initmath},
	{"regexp",	initregexp},
	{"posix",	initposix},


	/* Optional modules */

#ifdef USE_AUDIO
	{"audio",	initaudio},
#endif

#ifdef USE_AMOEBA
	{"amoeba",	initamoeba},
#endif

#ifdef USE_GL
	{"gl",		initgl},
#ifdef USE_PANEL
	{"pnl",		initpanel},
#endif
#endif

#ifdef USE_STDWIN
	{"stdwin",	maybeinitstdwin},
#endif

	{0,		0}		/* Sentinel */
};