openbsd-ports/mail/faces/patches/patch-compface_file_c
2000-06-04 23:08:33 +00:00

84 lines
1.6 KiB
Plaintext

$OpenBSD: patch-compface_file_c,v 1.1 2000/06/04 23:08:34 espie Exp $
--- compface/file.c.orig Wed Jun 19 08:29:13 1991
+++ compface/file.c Mon Jun 5 00:48:26 2000
@@ -15,6 +15,8 @@
#include "compface.h"
+int xbitmap=0;
+
void
BigRead(fbuf)
register char *fbuf;
@@ -127,10 +129,19 @@ char *fbuf;
{
register char *s, *t;
register int i, bits, digits, words;
+ extern int xbitmap;
+ int digsperword = DIGSPERWORD;
+ int wordsperline = WORDSPERLINE;
s = F;
t = fbuf;
bits = digits = words = i = 0;
+ if (xbitmap) {
+ sprintf(t,"#define noname_width 48\n#define noname_height 48\nstatic char noname_bits[] = {\n ");
+ while (*t) t++;
+ digsperword = 2;
+ wordsperline = 15;
+ }
while (s < F + PIXELS)
{
if ((bits == 0) && (digits == 0))
@@ -138,25 +149,43 @@ char *fbuf;
*(t++) = '0';
*(t++) = 'x';
}
- if (*(s++))
- i = i * 2 + 1;
- else
- i *= 2;
+ if (xbitmap) {
+ if (*(s++))
+ i = (i >> 1) | 0x8;
+ else
+ i >>= 1;
+ }
+ else {
+ if (*(s++))
+ i = i * 2 + 1;
+ else
+ i *= 2;
+ }
if (++bits == BITSPERDIG)
{
- *(t++) = *(i + HexDigits);
+ if (xbitmap) {
+ t++;
+ t[-(digits & 1) * 2] = *(i + HexDigits);
+ }
+ else *(t++) = *(i + HexDigits);
bits = i = 0;
- if (++digits == DIGSPERWORD)
+ if (++digits == digsperword)
{
+ if (xbitmap && (s >= F + PIXELS)) break;
*(t++) = ',';
digits = 0;
- if (++words == WORDSPERLINE)
+ if (++words == wordsperline)
{
*(t++) = '\n';
+ if (xbitmap) *(t++) = ' ';
words = 0;
}
}
}
+ }
+ if (xbitmap) {
+ sprintf(t, "}\n");
+ while (*t) t++;
}
*(t++) = '\0';
}