X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/ae384229c538b20b429ea640ec30071ae944c0e7..cd4738e8f5ede42cba925b58a84c61e22bab8e8f:/armor.c diff --git a/armor.c b/armor.c index f2e97fc..ac1d23f 100644 --- a/armor.c +++ b/armor.c @@ -4,8 +4,6 @@ * Jonathan McDowell * * Copyright 2002 Project Purple - * - * $Id: armor.c,v 1.7 2003/09/30 20:40:10 noodles Exp $ */ #include @@ -102,16 +100,28 @@ static void armor_finish(struct armor_context *state) state->putchar_func(state->ctx, 1, &c); state->putchar_func(state->ctx, 1, (unsigned char *) "="); state->putchar_func(state->ctx, 1, (unsigned char *) "="); + state->count += 3; + if ((state->count % ARMOR_WIDTH) == 0) { + state->putchar_func(state->ctx, 1, + (unsigned char *) "\n"); + } break; case 2: c = encode64((state->lastoctet & 0xF) << 2); state->putchar_func(state->ctx, 1, &c); state->putchar_func(state->ctx, 1, (unsigned char *) "="); + state->count += 2; + if ((state->count % ARMOR_WIDTH) == 0) { + state->putchar_func(state->ctx, 1, + (unsigned char *) "\n"); + } break; } state->crc24 &= 0xffffffL; - state->putchar_func(state->ctx, 1, (unsigned char *) "\n"); + if ((state->count % ARMOR_WIDTH) != 0) { + state->putchar_func(state->ctx, 1, (unsigned char *) "\n"); + } state->putchar_func(state->ctx, 1, (unsigned char *) "="); c = encode64(state->crc24 >> 18); state->putchar_func(state->ctx, 1, &c);