mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-10 07:04:03 +00:00
7e1794efc8
- Pet portlint PR: 59413 Submitted by: Simon Barner <barner@in.tum.de>
315 lines
6.2 KiB
Plaintext
315 lines
6.2 KiB
Plaintext
*** compface/file.c Tue Jan 15 23:58:46 2002
|
|
--- /home/lkoeller/tmp/ports/mail/faces/work/faces/compface/file.c Sun Jan 19 19:35:35 2003
|
|
***************
|
|
*** 16,147 ****
|
|
|
|
#include "compface.h"
|
|
|
|
void
|
|
! BigRead(char *fbuf)
|
|
{
|
|
! int c;
|
|
|
|
! while (*fbuf != '\0') {
|
|
c = *(fbuf++);
|
|
! if ((c < FIRSTPRINT) || (c > LASTPRINT)) {
|
|
continue;
|
|
- }
|
|
BigMul(NUMPRINTS);
|
|
BigAdd((WORD)(c - FIRSTPRINT));
|
|
}
|
|
}
|
|
|
|
-
|
|
void
|
|
! BigWrite(char *fbuf)
|
|
{
|
|
static WORD tmp;
|
|
static char buf[DIGITS];
|
|
! char *s;
|
|
! int i;
|
|
|
|
s = buf;
|
|
! while (B.b_words > 0) {
|
|
BigDiv(NUMPRINTS, &tmp);
|
|
*(s++) = tmp + FIRSTPRINT;
|
|
}
|
|
! i = 7; /* Leave room for the field name on the first line */
|
|
*(fbuf++) = ' ';
|
|
! while (s-- > buf) {
|
|
! if (i == 0) {
|
|
*(fbuf++) = ' ';
|
|
- }
|
|
*(fbuf++) = *s;
|
|
! if (++i >= MAXLINELEN) {
|
|
*(fbuf++) = '\n';
|
|
i = 0;
|
|
}
|
|
}
|
|
! if (i > 0) {
|
|
*(fbuf++) = '\n';
|
|
- }
|
|
*(fbuf++) = '\0';
|
|
}
|
|
|
|
-
|
|
void
|
|
! ReadFace(char *fbuf)
|
|
{
|
|
! int c, i;
|
|
! char *s, *t;
|
|
|
|
t = s = fbuf;
|
|
! for (i = strlen(s); i > 0; i--) {
|
|
! c = (int) *(s++);
|
|
! if ((c >= '0') && (c <= '9')) {
|
|
! if (t >= fbuf + DIGITS) {
|
|
status = ERR_EXCESS;
|
|
break;
|
|
}
|
|
*(t++) = c - '0';
|
|
! } else if ((c >= 'A') && (c <= 'F')) {
|
|
! if (t >= fbuf + DIGITS) {
|
|
status = ERR_EXCESS;
|
|
break;
|
|
}
|
|
*(t++) = c - 'A' + 10;
|
|
! } else if ((c >= 'a') && (c <= 'f')) {
|
|
! if (t >= fbuf + DIGITS) {
|
|
status = ERR_EXCESS;
|
|
break;
|
|
}
|
|
*(t++) = c - 'a' + 10;
|
|
- } else if (((c == 'x') || (c == 'X')) && (t > fbuf) && (*(t-1) == 0)) {
|
|
- t--;
|
|
}
|
|
}
|
|
! if (t < fbuf + DIGITS) {
|
|
longjmp(comp_env, ERR_INSUFF);
|
|
- }
|
|
s = fbuf;
|
|
t = F;
|
|
c = 1 << (BITSPERDIG - 1);
|
|
! while (t < F + PIXELS) {
|
|
*(t++) = (*s & c) ? 1 : 0;
|
|
! if ((c >>= 1) == 0) {
|
|
s++;
|
|
c = 1 << (BITSPERDIG - 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
-
|
|
void
|
|
! WriteFace(char *fbuf)
|
|
{
|
|
! char *s, *t;
|
|
! int i, bits, digits, words;
|
|
|
|
s = F;
|
|
t = fbuf;
|
|
bits = digits = words = i = 0;
|
|
! while (s < F + PIXELS) {
|
|
! if ((bits == 0) && (digits == 0)) {
|
|
*(t++) = '0';
|
|
*(t++) = 'x';
|
|
}
|
|
! if (*(s++)) {
|
|
i = i * 2 + 1;
|
|
! } else {
|
|
i *= 2;
|
|
}
|
|
! if (++bits == BITSPERDIG) {
|
|
! *(t++) = *(i + HexDigits);
|
|
bits = i = 0;
|
|
! if (++digits == DIGSPERWORD) {
|
|
*(t++) = ',';
|
|
digits = 0;
|
|
! if (++words == WORDSPERLINE) {
|
|
*(t++) = '\n';
|
|
words = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*(t++) = '\0';
|
|
}
|
|
--- 15,191 ----
|
|
|
|
#include "compface.h"
|
|
|
|
+ int xbitmap=0;
|
|
+
|
|
void
|
|
! BigRead(fbuf)
|
|
! register char *fbuf;
|
|
{
|
|
! register int c;
|
|
|
|
! while (*fbuf != '\0')
|
|
! {
|
|
c = *(fbuf++);
|
|
! if ((c < FIRSTPRINT) || (c > LASTPRINT))
|
|
continue;
|
|
BigMul(NUMPRINTS);
|
|
BigAdd((WORD)(c - FIRSTPRINT));
|
|
}
|
|
}
|
|
|
|
void
|
|
! BigWrite(fbuf)
|
|
! register char *fbuf;
|
|
{
|
|
static WORD tmp;
|
|
static char buf[DIGITS];
|
|
! register char *s;
|
|
! register int i;
|
|
|
|
s = buf;
|
|
! while (B.b_words > 0)
|
|
! {
|
|
BigDiv(NUMPRINTS, &tmp);
|
|
*(s++) = tmp + FIRSTPRINT;
|
|
}
|
|
! i = 7; /* leave room for the field name on the first line */
|
|
*(fbuf++) = ' ';
|
|
! while (s-- > buf)
|
|
! {
|
|
! if (i == 0)
|
|
*(fbuf++) = ' ';
|
|
*(fbuf++) = *s;
|
|
! if (++i >= MAXLINELEN)
|
|
! {
|
|
*(fbuf++) = '\n';
|
|
i = 0;
|
|
}
|
|
}
|
|
! if (i > 0)
|
|
*(fbuf++) = '\n';
|
|
*(fbuf++) = '\0';
|
|
}
|
|
|
|
void
|
|
! ReadFace(fbuf)
|
|
! char *fbuf;
|
|
{
|
|
! register int c, i;
|
|
! register char *s, *t;
|
|
|
|
t = s = fbuf;
|
|
! for(i = strlen(s); i > 0; i--)
|
|
! {
|
|
! c = (int)*(s++);
|
|
! if ((c >= '0') && (c <= '9'))
|
|
! {
|
|
! if (t >= fbuf + DIGITS)
|
|
! {
|
|
status = ERR_EXCESS;
|
|
break;
|
|
}
|
|
*(t++) = c - '0';
|
|
! }
|
|
! else if ((c >= 'A') && (c <= 'F'))
|
|
! {
|
|
! if (t >= fbuf + DIGITS)
|
|
! {
|
|
status = ERR_EXCESS;
|
|
break;
|
|
}
|
|
*(t++) = c - 'A' + 10;
|
|
! }
|
|
! else if ((c >= 'a') && (c <= 'f'))
|
|
! {
|
|
! if (t >= fbuf + DIGITS)
|
|
! {
|
|
status = ERR_EXCESS;
|
|
break;
|
|
}
|
|
*(t++) = c - 'a' + 10;
|
|
}
|
|
+ else if (((c == 'x') || (c == 'X')) && (t > fbuf) && (*(t-1) == 0))
|
|
+ t--;
|
|
}
|
|
! if (t < fbuf + DIGITS)
|
|
longjmp(comp_env, ERR_INSUFF);
|
|
s = fbuf;
|
|
t = F;
|
|
c = 1 << (BITSPERDIG - 1);
|
|
! while (t < F + PIXELS)
|
|
! {
|
|
*(t++) = (*s & c) ? 1 : 0;
|
|
! if ((c >>= 1) == 0)
|
|
! {
|
|
s++;
|
|
c = 1 << (BITSPERDIG - 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
void
|
|
! WriteFace(fbuf)
|
|
! 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))
|
|
! {
|
|
*(t++) = '0';
|
|
*(t++) = 'x';
|
|
}
|
|
! if (xbitmap) {
|
|
! if (*(s++))
|
|
! i = (i >> 1) | 0x8;
|
|
! else
|
|
! i >>= 1;
|
|
! }
|
|
! else {
|
|
! if (*(s++))
|
|
i = i * 2 + 1;
|
|
! else
|
|
i *= 2;
|
|
}
|
|
! if (++bits == BITSPERDIG)
|
|
! {
|
|
! if (xbitmap) {
|
|
! t++;
|
|
! t[-(digits & 1) * 2] = *(i + HexDigits);
|
|
! }
|
|
! else *(t++) = *(i + HexDigits);
|
|
bits = i = 0;
|
|
! if (++digits == digsperword)
|
|
! {
|
|
! if (xbitmap && (s >= F + PIXELS)) break;
|
|
*(t++) = ',';
|
|
digits = 0;
|
|
! if (++words == wordsperline)
|
|
! {
|
|
*(t++) = '\n';
|
|
+ if (xbitmap) *(t++) = ' ';
|
|
words = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
+ if (xbitmap) {
|
|
+ sprintf(t, "}\n");
|
|
+ while (*t) t++;
|
|
+ }
|
|
*(t++) = '\0';
|
|
}
|