summaryrefslogtreecommitdiff
path: root/x11/xfstt/patches/patch-ad
blob: 3aea86af8d75dcfee8b7a937d53f691b51694744 (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
$NetBSD: patch-ad,v 1.2 2001/02/18 04:34:17 hubertf Exp $

--- xfstt.cpp.orig	Sat Dec 11 19:23:45 1999
+++ xfstt.cpp
@@ -11,8 +11,8 @@
 #define UNSTRAPLIMIT	10500U
 
 // Change these if you don't lie being FHS complient
-#define TTFONTDIR	"/usr/share/fonts/truetype"
-#define TTCACHEDIR      "/var/cache/xfstt"
+#define TTFONTDIR       "@X11BASE@/lib/X11/fonts/TrueType"
+#define TTCACHEDIR      "@X11BASE@/lib/X11/fonts/TrueType"
 
 #define TTINFO_LEAF     "ttinfo.dir"
 #define TTNAME_LEAF     "ttname.dir"
@@ -73,6 +73,7 @@
 char* fontdir = TTFONTDIR;
 char* cachedir = TTCACHEDIR;
 int defaultres = 0;
+int NoTCP = 0;
 
 uid_t newuid = (uid_t)(-2);
 gid_t newgid = (uid_t)(-2);
@@ -89,12 +90,14 @@
 	printf( "Usage: xfstt [[--gslist]--sync][--port portno][--unstrap]"
 		"[--user username]\n"
 		"\t\t[--dir ttfdir][--encoding list_of_encodings]"
-		"[--daemon][--inetd]\n\n");
+		"[--daemon][--inetd]\n"
+		"\t\t[--notcp]\n\n");
 	if( !verbose)
 		return;
 	printf( "\t--sync     put ttf-fonts in \"%s\" in database\n", fontdir);
 	printf( "\t--gslist   print ghostscript style ttf fontlist\n ");
 	printf( "\t--port     change port number from default 7101\n");
+	printf( "\t--notcp    don't open TCP socket, use unix domain only\n");
 	printf( "\t--dir      use other font directory than "TTFONTDIR"\n");
 	printf( "\t--cache    use other font cache directory than "TTCACHEDIR"\n");
 	printf( "\t--res      force default resolution to this value\n");
@@ -470,10 +473,12 @@
 	raster->getFontExtent( &xfs->fe);
 
 	int used = (xfs->fe.bitmaps + xfs->fe.bmplen) - xfs->fe.buffer;
+	int bmpoff = xfs->fe.bitmaps - xfs->fe.buffer;
 	xfs->fe.buffer = (U8*)shrinkMem( xfs->fe.buffer, used);
-	if( xfs->fe.buffer)
+	if( xfs->fe.buffer) {
 		xfs->fe.buflen = used;
-	else {
+		xfs->fe.bitmaps = xfs->fe.buffer + bmpoff;
+	} else {
 		xfs->fid = 0;	//###
 		xfs = 0;
 	}
@@ -652,7 +657,7 @@
 		listen( sd_unix, 1);	// only one connection
 	}
 
-	if( !sd_inet) {
+	if( !NoTCP && !sd_inet) {
 		// prepare inet connection
 		sd_inet = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP);
 
@@ -668,7 +673,8 @@
 	fd_set sdlist;
 	FD_ZERO( &sdlist);
 	FD_SET( sd_unix, &sdlist);
-	FD_SET( sd_inet, &sdlist);
+	if( !NoTCP )
+		FD_SET( sd_inet, &sdlist);
 	int maxsd = (sd_inet > sd_unix) ? sd_inet : sd_unix;
 	select( maxsd+1, &sdlist, 0L, 0L, 0L);
 
@@ -676,7 +682,7 @@
 	unsigned int saLength = sizeof(struct sockaddr);
 	if( FD_ISSET( sd_unix, &sdlist))
 		sd = accept( sd_unix, (struct sockaddr*)&s_unix, &saLength);
-	else if( FD_ISSET( sd_inet, &sdlist))
+	else if( !NoTCP && FD_ISSET( sd_inet, &sdlist))
 		sd = accept( sd_inet, (struct sockaddr*)&s_inet, &saLength);
 	dprintf2( "accept( saLength = %d) = %d\n", saLength, sd);
 
@@ -1604,6 +1610,8 @@
 			inetdConnection = 1;
 		} else if( !strcmp( argv[i], "--multi")) {
 			multiConnection = 1;
+		} else if( !strcmp( argv[i], "--notcp")) {
+			NoTCP = 1;
 		} else if( !strcmp( argv[i], "--once")) {
 			multiConnection = 0;
 		} else if( !strcmp( argv[i], "--unstrap")) {