diff options
| author | Dominik Kaiser | 2024-03-18 11:37:50 +0100 |
|---|---|---|
| committer | Dominik Kaiser | 2024-03-18 11:37:50 +0100 |
| commit | 0fb01c961c92e54e04ad4c7881805db597089863 (patch) | |
| tree | 2b2d020d4175694347da55070c4f52985eacf697 /src/ft_printf.c | |
| parent | b3bb3f0889cb01e6a1064a13b718f623bdc5a1e2 (diff) | |
| download | ft_printf-0fb01c961c92e54e04ad4c7881805db597089863.tar.gz ft_printf-0fb01c961c92e54e04ad4c7881805db597089863.zip | |
Remove the src dir and put everything in root dir
hoping that it will appease moulinette
Diffstat (limited to 'src/ft_printf.c')
| -rw-r--r-- | src/ft_printf.c | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/src/ft_printf.c b/src/ft_printf.c deleted file mode 100644 index b107513..0000000 --- a/src/ft_printf.c +++ /dev/null @@ -1,90 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_printf.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2024/03/12 18:18:59 by dkaiser #+# #+# */ -/* Updated: 2024/03/15 13:05:57 by dkaiser ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "../ft_printf.h" - -static int print_char(char c) -{ - return (write(1, &c, 1)); -} - -static int print_str(char *str) -{ - int success; - int len; - - if (str) - { - len = 0; - while (str[len]) - len++; - success = write(1, str, len); - if (success < 0) - return (-1); - return (len); - } - else - { - success = write(1, "(null)", 6); - if (success == 6) - return (6); - return (-1); - } -} - -static int print_conv(va_list args, char c) -{ - if (c == 'c') - return (print_char(va_arg(args, int))); - if (c == 's') - return (print_str(va_arg(args, char *))); - if (c == 'p') - return (ft_printaddr(va_arg(args, void *))); - if (c == 'd' || c == 'i') - return (ft_printnbr(va_arg(args, int))); - if (c == 'u') - return (ft_printunbr(va_arg(args, unsigned int))); - if (c == 'x' || c == 'X') - return (ft_printhex(va_arg(args, unsigned int), c)); - if (c == '%') - return (print_char('%')); - return (-1); -} - -int ft_printf(const char *fmt, ...) -{ - int result; - int last_result; - int success; - va_list args; - - result = 0; - va_start(args, fmt); - while (*fmt) - { - last_result = result; - if (*fmt == '%') - result += print_conv(args, *(++fmt)); - else - { - success = write(1, fmt, 1); - if (success <= 0) - return (-1); - result++; - } - fmt++; - if (result < last_result) - return (-1); - } - va_end(args); - return (result); -} |
