remove buffer size dependency from input functions
This should've been part of 848c37, when buffers were unwired from input functions. Now buffer size is also no longer supplied in function calls but assumed. It is up to the caller to provide appropriately sized buffers.
This commit is contained in:
parent
b76c50a91b
commit
fa5095133a
3 changed files with 16 additions and 14 deletions
14
input.c
14
input.c
|
@ -1,29 +1,31 @@
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
#define PADDING '='
|
#define PADDING '='
|
||||||
|
#define OCTETBUF 3
|
||||||
|
#define SXTETBUF 4
|
||||||
|
|
||||||
int
|
int
|
||||||
getocts(FILE *fp, unsigned char *o, int olen)
|
getocts(FILE *fp, unsigned char *o)
|
||||||
{
|
{
|
||||||
int c, n;
|
int c, n;
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
while (n < olen-1 && (c = fgetc(fp)) != EOF)
|
while (n < OCTETBUF && (c = fgetc(fp)) != EOF)
|
||||||
o[n++] = c;
|
o[n++] = c;
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
getsxts(FILE *fp, unsigned char *s, int slen)
|
getsxts(FILE *fp, unsigned char *s)
|
||||||
{
|
{
|
||||||
int c, n, pad;
|
int c, n, pad;
|
||||||
|
|
||||||
n = pad = 0;
|
n = pad = 0;
|
||||||
while (n < slen-1 && (c = fgetc(fp)) != EOF && c != PADDING)
|
while (n < SXTETBUF && (c = fgetc(fp)) != EOF && c != PADDING)
|
||||||
if (c != '\n')
|
if (c != '\n')
|
||||||
s[n++] = c;
|
s[n++] = c;
|
||||||
while (n+pad < slen-1)
|
while (n+pad < SXTETBUF)
|
||||||
s[n+pad++] = PADDING;
|
s[n+pad++] = PADDING;
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
|
|
4
input.h
4
input.h
|
@ -4,9 +4,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
getocts(FILE *fp, unsigned char *o, int olen);
|
getocts(FILE *fp, unsigned char *o);
|
||||||
|
|
||||||
int
|
int
|
||||||
getsxts(FILE *fp, unsigned char *s, int slen);
|
getsxts(FILE *fp, unsigned char *s);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
12
main.c
12
main.c
|
@ -4,11 +4,11 @@
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "encode.h"
|
#include "encode.h"
|
||||||
|
|
||||||
#define OBUFSIZE 4
|
#define OCTETBUF 4
|
||||||
#define SBUFSIZE 5
|
#define SXTETBUF 5
|
||||||
|
|
||||||
unsigned char obuf[OBUFSIZE];
|
unsigned char obuf[OCTETBUF];
|
||||||
unsigned char sbuf[SBUFSIZE];
|
unsigned char sbuf[SXTETBUF];
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
|
@ -51,12 +51,12 @@ main(int argc, char *argv[])
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (dec) {
|
if (dec) {
|
||||||
while ((n = getsxts((argc >= 1) ? in : stdin, sbuf, SBUFSIZE))) {
|
while ((n = getsxts((argc >= 1) ? in : stdin, sbuf))) {
|
||||||
n = decode(sbuf, n, obuf, url);
|
n = decode(sbuf, n, obuf, url);
|
||||||
fwrite(obuf, sizeof(*obuf), n, (argc == 2) ? out : stdout);
|
fwrite(obuf, sizeof(*obuf), n, (argc == 2) ? out : stdout);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
while ((n = getocts((argc >= 1) ? in : stdin, obuf, OBUFSIZE))) {
|
while ((n = getocts((argc >= 1) ? in : stdin, obuf))) {
|
||||||
if (wrp) {
|
if (wrp) {
|
||||||
n = encode(obuf, n, sbuf, url);
|
n = encode(obuf, n, sbuf, url);
|
||||||
l = printw((argc == 2) ? out : stdout, sbuf, n);
|
l = printw((argc == 2) ? out : stdout, sbuf, n);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue