From 26f30dda484dfa47094cf9c67f9d4ac746026432 Mon Sep 17 00:00:00 2001 From: LinlyBoi Date: Tue, 22 Aug 2023 14:48:45 +0300 Subject: [PATCH] commented things to clarify --- printf.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/printf.c b/printf.c index 08b7052..081b245 100644 --- a/printf.c +++ b/printf.c @@ -10,21 +10,21 @@ **/ int _printf(const char *format, ...) { - int buff_idx, fmt_idx; + int buff_idx, fmt_idx; /* Indexes */ unsigned int identifiers, BUFF_SIZE, printed; - char *buffer; + char *buffer; /*where non formated things are stored*/ va_list args; va_start(args, format); - identifiers = _contains(format, '%'); + identifiers = _contains(format, '%'); /* instances of %s, %c etc */ BUFF_SIZE = _strlen(format) - identifiers; - buffer = malloc(BUFF_SIZE); + buffer = malloc(BUFF_SIZE); /* sized of the non % instances only*/ if (!format) /* No string. No laundry */ return (0); - buff_idx = 0; + buff_idx = 0; /* was there a way to squish these together? */ fmt_idx = 0; printed = 0; while (*(format + fmt_idx)) @@ -35,6 +35,7 @@ int _printf(const char *format, ...) { _puts(buffer); BUFF_SIZE -= _strlen(buffer); + printed += _strlen(buffer); free(buffer); buffer = malloc(BUFF_SIZE); buff_idx = 0; @@ -42,12 +43,13 @@ int _printf(const char *format, ...) switch (*(format + fmt_idx + 1)) /*this needs to shrink*/ { case 's': - _puts(va_arg(args, char*)); + printed += _puts(va_arg(args, char*)); break; case 'c': - _putchar(va_arg(args, int)); + printed += _putchar(va_arg(args, int)); break; case '%': /*add 1 byte*/ + printed += _putchar('%'); break; } fmt_idx += 2; @@ -61,7 +63,7 @@ int _printf(const char *format, ...) } if (*buffer) { - _puts(buffer); + printed += _puts(buffer); free(buffer); } return (printed);