91m4_defs(Display *display,
const char *host)
101 char *td = getenv(
"TMPDIR");
102 if(!td || strlen(td) < 2 || *td !=
'/') {
105 asprintf(&tmp_name,
"%s/ctwmrc.XXXXXXXX", td);
107 perror(
"asprintf failed in m4_defs");
111 int fd = mkstemp(tmp_name);
113 perror(
"mkstemp failed in m4_defs");
116 tmpf = fdopen(fd,
"w+");
123#define WR_DEF(k, v) fprintf(tmpf, "define(`%s', `%s')\n", (k), (v))
124#define WR_NUM(k, v) fprintf(tmpf, "define(`%s', `%d')\n", (k), (v))
131 perror(
"gethostname failed in m4_defs");
134 WR_DEF(
"CLIENTHOST", client);
141 char *server, *colon;
143 server = strdup(XDisplayName(host));
145 server = strdup(
"unknown");
147 colon = strchr(server,
':');
153 if((server[0] ==
'\0') || (!strcmp(server,
"unix"))) {
155 server = strdup(client);
157 WR_DEF(
"SERVERHOST", server);
162#ifdef HISTORICAL_HOSTNAME_IMPL
171 struct hostent *
hostname = gethostbyname(client);
176 WR_DEF(
"HOSTNAME", client);
184 WR_DEF(
"HOSTNAME", client);
190 if(!(user = getenv(
"USER")) && !(user = getenv(
"LOGNAME"))) {
191 struct passwd *pwd = getpwuid(getuid());
205 WR_DEF(
"TWM_TYPE",
"ctwm");
216 WR_NUM(
"VERSION", ProtocolVersion(display));
217 WR_NUM(
"REVISION", ProtocolRevision(display));
218 WR_DEF(
"VENDOR", ServerVendor(display));
219 WR_NUM(
"RELEASE", VendorRelease(display));
225 WR_DEF(
"VENDOR",
"Your Friendly Local Ctwm");
226 WR_NUM(
"RELEASE", 123456789);
234#define Resolution(pixels, mm) ((((pixels) * 100000 / (mm)) + 50) / 100)
239 WR_NUM(
"BITS_PER_RGB",
Scr->d_visual->bits_per_rgb);
241 switch(
Scr->d_visual->class) {
276 else if(
CLarg.is_captive &&
Scr->captivename) {
277 WR_DEF(
"TWM_CAPTIVE",
"Yes");
278 WR_DEF(
"TWM_CAPTIVE_NAME",
Scr->captivename);
282 WR_DEF(
"TWM_CAPTIVE",
"No");
288#ifdef PIXMAP_DIRECTORY
289 WR_DEF(
"PIXMAP_DIRECTORY", PIXMAP_DIRECTORY);
320 if(
CLarg.KeepTmpFile) {
321 fprintf(stderr,
"Left file: %s\n", tmp_name);
324 fprintf(tmpf,
"syscmd(/bin/rm %s)\n", tmp_name);