Made test rule in Makefile which diffs main using ft_printf and builtin printf.
authorLukas Jiriste <ljiriste@student.42prague.com>
Wed, 6 Sep 2023 16:07:41 +0000 (18:07 +0200)
committerLukas Jiriste <ljiriste@student.42prague.com>
Wed, 6 Sep 2023 16:07:41 +0000 (18:07 +0200)
Made small patches in the .c files.

Makefile
conversion.c
formatting.c
ft_printf.c
main.c

index dcb449f3d7a6a1089abe3b0a91b43bce7a4a2b28..a1634f0c0f2af47970c3f695fac02c742e5b4a3c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CC = cc
+CC = cc -g
 CFLAGS = -Wall -Wextra -Werror
 AR = ar
 
@@ -6,16 +6,17 @@ RM = rm -f
 
 INCLUDE = $(addprefix -I, . ./Libft)
 SRCDIR = .
-# SOURCES = $(addprefix $(SRCDIR)/, ft_putchar.c ft_putstr.c ft_strcmp.c ft_strlen.c ft_swap.c)
-SOURCES = $(shell find $(SRCDIR) -maxdepth 1 -name "*.c")
+SOURCES = $(filter-out ./orig_main.c, $(shell find $(SRCDIR) -maxdepth 1 -name "*.c"))
 OBJECTS = $(SOURCES:.c=.o) libft.a
+ORIGOBJ = $(filter-out ./main.o, $(OBJECTS)) ./orig_main.o
 
-NAME = libftprintf.a
+NAME = test.out
+ORINAME = orig.out
 
 all : $(NAME)
 
 $(NAME) : $(OBJECTS)
-       $(AR) rcs $(NAME) $(OBJECTS)
+       $(CC) $(CFLAGS) -o $@ $(OBJECTS) $(INCLUDE)
 
 libft.a :
        $(MAKE) -C ./Libft
@@ -34,3 +35,17 @@ fclean : clean
 
 re : fclean
        $(MAKE) all
+
+orig_main.o : orig_main.c
+       $(CC) -o $@ -c $< $(INCLUDE)
+
+orig_main.c : main.c
+       sed 's/ft_printf/printf/g' main.c > orig_main.c 
+
+$(ORINAME) : $(ORIGOBJ)
+       $(CC) -o $@ $(ORIGOBJ) $(INCLUDE)
+
+test : $(NAME) $(ORINAME)
+       ./$(NAME) > ft_printf.txt
+       ./$(ORINAME) > printf.txt
+       diff -a ft_printf.txt printf.txt
index c7f722a38295beb1b24650f6d9b0eae984d99e32..8e775122bc411fc6f26418ec672e3ab9cdd74cb8 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/09/05 11:30:56 by ljiriste          #+#    #+#             */
-/*   Updated: 2023/09/05 12:10:06 by ljiriste         ###   ########.fr       */
+/*   Updated: 2023/09/06 16:54:57 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -72,7 +72,8 @@ int   handle_conversion(const char **format, va_list *args)
        if (!valid_toprint(to_print))
                return (-1);
        ft_putstr_fd(to_print.left_pad, 1);
-       ft_putchar_fd(to_print.sign, 1);
+       if (to_print.sign != '\0')
+               ft_putchar_fd(to_print.sign, 1);
        ft_putstr_fd(to_print.zero_pad, 1);
        ft_putstr_fd(to_print.alt, 1);
        ft_putstr_fd(to_print.main_part, 1);
index 089ea6f900ea96e08c2913194a711d7f505e68d4..68c67f9dc5a19b2be6121373aa67fb8f8d1093ab 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/09/05 11:28:21 by ljiriste          #+#    #+#             */
-/*   Updated: 2023/09/05 12:11:32 by ljiriste         ###   ########.fr       */
+/*   Updated: 2023/09/06 18:00:13 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -32,7 +32,10 @@ static char  *create_alt(t_conv conv)
 
 static void    create_main(char *str, t_conv conv, t_to_print *tp)
 {
-       if (conv.type == 'd' || conv.type == 'i')
+       if (conv.type != 's' && conv.type != 'c'
+               && ft_strncmp(str, "0", 2) == 0 && conv.prec == 0)
+               tp->main_part = ft_strdup("");
+       else if (conv.type == 'd' || conv.type == 'i')
        {
                if (*str == '-')
                {
index db1fbce7ad81b1927b9e05c7ae2ae1852a70e7ad..8fdd78b632c3aebc4b62814feb936fa7473fe1fc 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/08/17 09:14:21 by ljiriste          #+#    #+#             */
-/*   Updated: 2023/09/05 12:10:57 by ljiriste         ###   ########.fr       */
+/*   Updated: 2023/09/06 18:01:29 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
diff --git a/main.c b/main.c
index 062b8e56ef2626b2f0a6b7f76c4bb2ca9413a523..0eaee8b1668c0f113ef86b5a6413c2ed750c19fb 100644 (file)
--- a/main.c
+++ b/main.c
+/* ************************************************************************** */
+/*                                                                            */
+/*                                                        :::      ::::::::   */
+/*   main.c                                             :+:      :+:    :+:   */
+/*                                                    +:+ +:+         +:+     */
+/*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
+/*                                                +#+#+#+#+#+   +#+           */
+/*   Created: 2023/09/06 17:26:17 by ljiriste          #+#    #+#             */
+/*   Updated: 2023/09/06 18:05:39 by ljiriste         ###   ########.fr       */
+/*                                                                            */
+/* ************************************************************************** */
+
 
 #include "ft_printf.h"
 
 int    main(void)
 {
-       //ft_printf("Ahoj vole - %010.5s\n", "Ahoj vole");
-       /*
        ft_printf("Trying format d/i:\n");
        ft_printf("Without flags:\n");
-       ft_printf("\t-1\t\t%d\n", -1);
+
+       ft_printf("\n\t-1\t\t%d\n", -1);
        ft_printf("\t0\t\t%d\n", 0);
        ft_printf("\t1\t\t%d\n", 1);
-       ft_printf("\t32767\t\t%d\n", 32767);
+
+       ft_printf("\n\t32767\t\t%d\n", 32767);
        ft_printf("\t32768\t\t%d\n", 32768);
        ft_printf("\t32769\t\t%d\n", 32769);
-       ft_printf("\t65535\t\t%d\n", 65535);
+
+       ft_printf("\n\t65535\t\t%d\n", 65535);
        ft_printf("\t65536\t\t%d\n", 65536);
        ft_printf("\t65537\t\t%d\n", 65537);
-       ft_printf("\t2147483647\t%d\n", 2147483647);
+
+       ft_printf("\n\t2147483647\t%d\n", 2147483647);
        ft_printf("\t2147483648\t%d\n", 2147483648);
        ft_printf("\t2147483649\t%d\n", 2147483649);
-       ft_printf("\t4294967295\t%d\n", 4294967295);
+
+       ft_printf("\n\t4294967295\t%d\n", 4294967295);
        ft_printf("\t4294967296\t%d\n", 4294967296);
        ft_printf("\t4294967297\t%d\n", 4294967297);
-       */
-       ft_printf("%010d\n", 1998);
-       ft_printf("%0+10d\n", 1998);
-       ft_printf("%+10d\n", 1998);
-       ft_printf("% 10d\n", 1998);
-       ft_printf("% 010d\n", 1998);
+
+
+       ft_printf("\nWith flags applicable to format d/i (+ -0):\n");
+
+       ft_printf("\n\t|      1998|\t|%10d|\n", 1998);
+       ft_printf("\t|      1998|\t|% 10d|\n", 1998);
+       ft_printf("\t|      1998|\t|%        10d|\n", 1998);
+
+       ft_printf("\n\t|     +1998|\t|%+10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|%+ 10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|% + + +++     10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|% +10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|%+ + +++   ++  10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|%  + + +   ++10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|%+ +  + ++     +   10d|\n", 1998);
+       ft_printf("\t|     +1998|\t|%+ +  + ++     +   +10d|\n", 1998);
+
+       ft_printf("\n\t| 000001998|\t|% 010d|\n", 1998);
+       ft_printf("\t| 000001998|\t|%0 10d|\n", 1998);
+       ft_printf("\t| 000001998|\t|%0    000    0 0010d|\n", 1998);
+       ft_printf("\t| 000001998|\t|% 0    000    0 0010d|\n", 1998);
+       ft_printf("\t| 000001998|\t|%0    000    0 00 10d|\n", 1998);
+       ft_printf("\t| 000001998|\t|% 0    000    0 00 10d|\n", 1998);
+
+       ft_printf("\n\t|+000001998|\t|%0+10d|\n", 1998);
+       ft_printf("\t|+000001998|\t|%+010d|\n", 1998);
+       ft_printf("\t|+000001998|\t|%0+ 10d|\n", 1998);
+       ft_printf("\t|+000001998|\t|%0 +10d|\n", 1998);
+       ft_printf("\t|+000001998|\t|% 0+10d|\n", 1998);
+       ft_printf("\t|+000001998|\t|% +010d|\n", 1998);
+       ft_printf("\t|+000001998|\t|%+0 10d|\n", 1998);
+       ft_printf("\t|+000001998|\t|%+ 010d|\n", 1998);
+
+       ft_printf("\n\t|0000001998|\t|%010d|\n", 1998);
+       ft_printf("\t|0000001998|\t|%0000000000010d|\n", 1998);
+
+       ft_printf("\n\t|1998      |\t|%-10d|\n", 1998);
+       ft_printf("\t|1998      |\t|%0-10d|\n", 1998);
+       ft_printf("\t|1998      |\t|%-010d|\n", 1998);
+       ft_printf("\t|1998      |\t|%-0000-----00-00-0-10d|\n", 1998);
+       ft_printf("\t|1998      |\t|%-0000---0-0-0--0-0-0010d|\n", 1998);
+       ft_printf("\t|1998      |\t|%0000---0-0-0--0-0-0-10d|\n", 1998);
+       ft_printf("\t|1998      |\t|%0000---0-0-0--0-0-0010d|\n", 1998);
+
+       ft_printf("\n\t| 1998     |\t|%- 10d|\n", 1998);
+       ft_printf("\t| 1998     |\t|% -10d|\n", 1998);
+       ft_printf("\t| 1998     |\t|%0 -10d|\n", 1998);
+       ft_printf("\t| 1998     |\t|% 0-10d|\n", 1998);
+       ft_printf("\t| 1998     |\t|% -010d|\n", 1998);
+       ft_printf("\t| 1998     |\t|%0- 10d|\n", 1998);
+       ft_printf("\t| 1998     |\t|%-0 10d|\n", 1998);
+       ft_printf("\t| 1998     |\t|%- 010d|\n", 1998);
+
+       ft_printf("\n\t|+1998     |\t|%-+10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|%+-10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|% +-10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|%+ -10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|%+- 10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|% -+10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|%- +10d|\n", 1998);
+       ft_printf("\t|+1998     |\t|%-+ 10d|\n", 1998);
+
+
+       ft_printf("\nMinimum width smaller than input:\n");
+
+       ft_printf("\n\t|2147483647|\n\t|%5d|\n", 2147483647);
+       ft_printf("\t|2147483647|\n\t|%05d|\n", 2147483647);
+
+       ft_printf("\n\t| 2147483647|\n\t|% 5d|\n", 2147483647);
+       ft_printf("\t| 2147483647|\n\t|% 05d|\n", 2147483647);
+       ft_printf("\t|+2147483647|\n\t|%+05d|\n", 2147483647);
+       ft_printf("\t|+2147483647|\n\t|%+5d|\n", 2147483647);
+
+
+       ft_printf("\nPrecision:\n");
+
+       ft_printf("\n\t||\t|%.0d|\n\n", 0);
+
+       ft_printf("\n\t|      1998|\t|%10.0d|\n", 1998);
+       ft_printf("\t|      1998|\t|%10.1d|\n", 1998);
+       ft_printf("\t|      1998|\t|%10.2d|\n", 1998);
+       ft_printf("\t|      1998|\t|%10.3d|\n", 1998);
+       ft_printf("\t|      1998|\t|%10.4d|\n", 1998);
+       ft_printf("\t|     01998|\t|%10.5d|\n", 1998);
+       ft_printf("\t|    001998|\t|%10.6d|\n", 1998);
+       ft_printf("\t|   0001998|\t|%10.7d|\n", 1998);
+       ft_printf("\t|  00001998|\t|%10.8d|\n", 1998);
+       ft_printf("\t| 000001998|\t|%10.9d|\n", 1998);
+       ft_printf("\t|0000001998|\t|%10.10d|\n", 1998);
+
+       ft_printf("\n\t|00000001998|\t|%10.11d|\n", 1998);
+
        return (0);
 }