From: schwarze@mdocml.bsd.lv
To: source@mdocml.bsd.lv
Subject: mdocml: Move the last column-counting members of struct termp (col and
Date: Wed, 21 Aug 2013 17:20:40 -0400 (EDT) [thread overview]
Message-ID: <201308212120.r7LLKevS014021@krisdoz.my.domain> (raw)
Log Message:
-----------
Move the last column-counting members of struct termp (col and maxcols)
from int to size_t, to match some existing ones (offset, *rmargin, viscol).
Move some related local variables from int to size_t as well.
Needed as a preparation to make a generalized adjbuf() function available
beyond the file term.c, i.e. in mandoc.c.
Also saves a couple of ugly casts.
Modified Files:
--------------
mdocml:
term.c
term.h
Revision Data
-------------
Index: term.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term.c,v
retrieving revision 1.209
retrieving revision 1.210
diff -Lterm.c -Lterm.c -u -p -r1.209 -r1.210
--- term.c
+++ term.c
@@ -34,7 +34,7 @@
#include "main.h"
static size_t cond_width(const struct termp *, int, int *);
-static void adjbuf(struct termp *p, int);
+static void adjbuf(struct termp *p, size_t);
static void bufferc(struct termp *, char);
static void encode(struct termp *, const char *, size_t);
static void encode1(struct termp *, int);
@@ -105,15 +105,15 @@ term_end(struct termp *p)
void
term_flushln(struct termp *p)
{
- int i; /* current input position in p->buf */
+ size_t i; /* current input position in p->buf */
int ntab; /* number of tabs to prepend */
size_t vis; /* current visual position on output */
size_t vbl; /* number of blanks to prepend to output */
size_t vend; /* end of word visual position on output */
size_t bp; /* visual right border position */
size_t dv; /* temporary for visual pos calculations */
- int j; /* temporary loop index for p->buf */
- int jhy; /* last hyph before overflow w/r/t j */
+ size_t j; /* temporary loop index for p->buf */
+ size_t jhy; /* last hyph before overflow w/r/t j */
size_t maxvis; /* output position of visible boundary */
size_t mmax; /* used in calculating bp */
@@ -216,7 +216,7 @@ term_flushln(struct termp *p)
j = i;
while (' ' == p->buf[i])
i++;
- dv = (size_t)(i - j) * (*p->width)(p, ' ');
+ dv = (i - j) * (*p->width)(p, ' ');
vbl += dv;
vend += dv;
break;
@@ -507,7 +507,7 @@ term_word(struct termp *p, const char *w
}
static void
-adjbuf(struct termp *p, int sz)
+adjbuf(struct termp *p, size_t sz)
{
if (0 == p->maxcols)
@@ -515,8 +515,7 @@ adjbuf(struct termp *p, int sz)
while (sz >= p->maxcols)
p->maxcols <<= 2;
- p->buf = mandoc_realloc
- (p->buf, sizeof(int) * (size_t)p->maxcols);
+ p->buf = mandoc_realloc(p->buf, sizeof(int) * p->maxcols);
}
static void
@@ -566,16 +565,13 @@ encode1(struct termp *p, int c)
static void
encode(struct termp *p, const char *word, size_t sz)
{
- int i, len;
+ size_t i;
if (TERMP_SKIPCHAR & p->flags) {
p->flags &= ~TERMP_SKIPCHAR;
return;
}
- /* LINTED */
- len = sz;
-
/*
* Encode and buffer a string of characters. If the current
* font mode is unset, buffer directly, else encode then buffer
@@ -583,19 +579,19 @@ encode(struct termp *p, const char *word
*/
if (TERMFONT_NONE == term_fonttop(p)) {
- if (p->col + len >= p->maxcols)
- adjbuf(p, p->col + len);
- for (i = 0; i < len; i++)
+ if (p->col + sz >= p->maxcols)
+ adjbuf(p, p->col + sz);
+ for (i = 0; i < sz; i++)
p->buf[p->col++] = word[i];
return;
}
/* Pre-buffer, assuming worst-case. */
- if (p->col + 1 + (len * 5) >= p->maxcols)
- adjbuf(p, p->col + 1 + (len * 5));
+ if (p->col + 1 + (sz * 5) >= p->maxcols)
+ adjbuf(p, p->col + 1 + (sz * 5));
- for (i = 0; i < len; i++) {
+ for (i = 0; i < sz; i++) {
if (ASCII_HYPH == word[i] ||
isgraph((unsigned char)word[i]))
encode1(p, word[i]);
Index: term.h
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term.h,v
retrieving revision 1.93
retrieving revision 1.94
diff -Lterm.h -Lterm.h -u -p -r1.93 -r1.94
--- term.h
+++ term.h
@@ -58,10 +58,10 @@ struct termp {
size_t defrmargin; /* Right margin of the device. */
size_t rmargin; /* Current right margin. */
size_t maxrmargin; /* Max right margin. */
- int maxcols; /* Max size of buf. */
+ size_t maxcols; /* Max size of buf. */
size_t offset; /* Margin offest. */
size_t tabwidth; /* Distance of tab positions. */
- int col; /* Bytes in buf. */
+ size_t col; /* Bytes in buf. */
size_t viscol; /* Chars on current line. */
int overstep; /* See termp_flushln(). */
int skipvsp; /* Vertical space to skip. */
--
To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv
reply other threads:[~2013-08-21 21:20 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201308212120.r7LLKevS014021@krisdoz.my.domain \
--to=schwarze@mdocml.bsd.lv \
--cc=source@mdocml.bsd.lv \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).