1891a
2#ifdef XMOD
3	fontheight = n;
4#endif
5.
6592a
7#ifdef XMOD
8includefile(filenm)
9char *filenm; {
10
11	FILE *inf;
12	int ch, c1, c2, firstch = 0;
13
14	if (!(inf = fopen(filenm, "r"))) {
15		fprintf(stderr, "psdit: fopen(%s): ", filenm);
16		perror();
17		exit(1);
18	}
19	c1 = fgetc(inf); c2 = fgetc(inf);
20	if (c1 != '%' || c2 != '!')
21		fprintf(stderr, "psdit: %s not a postscript file.\n", filenm),
22		exit(1);
23
24	fputs("%!", tf);
25	while ((ch = fgetc(inf)) != EOF) {
26		fputc(ch, tf);
27		if (firstch && ch == '%') {
28			/* we have to double leading '%'s */
29			fputc('%', tf);
30		}
31		firstch = (ch == '\n');
32	}
33	fclose(inf);
34}
35#endif
36.
37587a
38#ifdef XMOD
39	case 'X': {		/* \X command from ditroff */
40            int last;
41	    char largebuf[128];
42	    fscanf (fp, "%1s", str);
43	    switch (str[0]) {
44		case 'p' :
45		    FlushShow(0);MoveTo();DoMove();
46		    fgets(largebuf, sizeof(largebuf), fp);
47		    last = strlen(largebuf) - 1;
48		    if (last >= 0 && largebuf[last] == '\n') {
49			ungetc('\n', fp);
50			largebuf[last] = ' ';
51		    }
52		    fputs(largebuf, tf);
53		    putc('\n', tf);
54		    break;
55		case 'f' :
56		    FlushShow(0);MoveTo();DoMove();
57		    if (fscanf(fp, "%s", largebuf) == 1) {
58			char *nl = (char *) index(largebuf, '\n');
59			if (nl) *nl = '\0';
60			includefile(largebuf);
61		    } else
62			fprintf(stderr, "warning - include cmd w/o path.\n");
63		    break;
64	    }
65	}
66	break;
67#endif
68.
694a
70# define XMOD
71.
72w psdit.c.new
73q
74