84 lines
1.6 KiB
Plaintext
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';
|
|
}
|