svn commit: r351750 - stable/11/usr.bin/vtfontcvt
Ed Maste
emaste at FreeBSD.org
Tue Sep 3 16:17:02 UTC 2019
Author: emaste
Date: Tue Sep 3 16:17:01 2019
New Revision: 351750
URL: https://svnweb.freebsd.org/changeset/base/351750
Log:
MFC r351425: vtfontcvt: simplify rshift_row
We don't need to specify the buffer size in both bytes and bits.
Sponsored by: The FreeBSD Foundation
Modified:
stable/11/usr.bin/vtfontcvt/vtfontcvt.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/usr.bin/vtfontcvt/vtfontcvt.c
==============================================================================
--- stable/11/usr.bin/vtfontcvt/vtfontcvt.c Tue Sep 3 16:15:57 2019 (r351749)
+++ stable/11/usr.bin/vtfontcvt/vtfontcvt.c Tue Sep 3 16:17:01 2019 (r351750)
@@ -224,38 +224,19 @@ add_char(unsigned curchar, unsigned map_idx, uint8_t *
}
/*
- * Right-shift glyph row by _shift_ bits. Row _len_ bits wide, _size_ bytes.
+ * Right-shift glyph row.
*/
-static int
-rshift_row(uint8_t *line, size_t size, size_t len, size_t shift)
+static void
+rshift_row(uint8_t *buf, size_t len, size_t shift)
{
- size_t d, s, i;
- uint16_t t;
+ ssize_t i, off_byte = shift / 8;
+ size_t off_bit = shift % 8;
- assert(size > 0 && len > 0);
- assert(size * 8 >= len);
-
if (shift == 0)
- return (0);
-
- d = shift / 8;
- s = 8 - shift % 8;
- i = howmany(len, 8);
-
- while (i > 0) {
- i--;
-
- t = *(line + i);
- *(line + i) = 0;
-
- t <<= s;
-
- if (i + d + 1 < size)
- *(line + i + d + 1) |= (uint8_t)t;
- if (i + d < size)
- *(line + i + d) = t >> 8;
- }
- return (0);
+ return;
+ for (i = len - 1; i >= 0; i--)
+ buf[i] = (i >= off_byte ? buf[i - off_byte] >> off_bit : 0) |
+ (i > off_byte ? buf[i - off_byte - 1] << (8 - off_bit) : 0);
}
/*
@@ -426,11 +407,7 @@ parse_bdf(FILE *fp, unsigned int map_idx)
*(line + j) = (uint8_t)val;
}
- rv = rshift_row(line, wbytes * 2, bbw,
- bbox - fbbox);
- if (rv != 0)
- goto out;
-
+ rshift_row(line, wbytes * 2, bbox - fbbox);
rv = split_row(bytes + i * wbytes,
bytes_r + i * wbytes, line, dwidth);
if (rv != 0)
More information about the svn-src-stable-11
mailing list