diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-14 10:26:41 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-14 10:51:12 +0100 |
| commit | 2d6500136bd78fbc2545610f6f08718c728a9028 (patch) | |
| tree | e4bef4f31abd4c701d80f53b0443ae837a949001 | |
| parent | 80f5c6a1cef114cd5006431149506bb5d87403b6 (diff) | |
| download | ft_printf-master.tar.gz ft_printf-master.tar.bz2 ft_printf-master.zip | |
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | Makefile | 7 | ||||
| -rw-r--r-- | convert.c (renamed from printer.c) | 9 | ||||
| m--------- | libft | 0 | ||||
| -rw-r--r-- | main.c | 77 | ||||
| -rwxr-xr-x | test | bin | 23144 -> 0 bytes |
6 files changed, 53 insertions, 44 deletions
@@ -1,7 +1,7 @@ *.o -a.out *ghc +a.out ft_printf -*.a test +*.a *.dSYM @@ -6,7 +6,7 @@ # By: cacharle <marvin@42.fr> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2019/10/28 17:41:14 by cacharle #+# #+# # -# Updated: 2019/11/13 09:27:01 by cacharle ### ########.fr # +# Updated: 2019/11/14 10:23:31 by cacharle ### ########.fr # # # # **************************************************************************** # @@ -19,10 +19,10 @@ INCFLAGS = -I$(LIBFT_ROOT) RM = rm -f LIB = ar rcs -MAKE = make -j4 +MAKE = make NAME = libftprintf.a -SRC = ft_printf.c utils.c printer.c parse.c list.c extract.c \ +SRC = ft_printf.c utils.c convert.c parse.c list.c extract.c \ convert_int.c convert_uint.c convert_char.c convert_str.c \ convert_ptr.c convert_hex.c convert_percent.c convert_written.c \ convert_none.c length_modifier.c @@ -49,6 +49,7 @@ fclean: libft_fclean clean re: fclean all +test: CCFLAGS += -g test: all $(CC) $(CCFLAGS) $(LDFLAGS) -L./libft -lft $(INCFLAGS) -o test main.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/28 23:19:24 by cacharle #+# #+# */ -/* Updated: 2019/11/13 09:28:35 by cacharle ### ########.fr */ +/* Updated: 2019/11/14 10:22:04 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,8 @@ char *convert(t_pformat *pformat, va_list ap) { char *str; + if (pformat == NULL) + return (NULL); if (pformat->flags & FLAG_WIDTH_WILDCARD) { if (pformat->flags & FLAG_WIDTH_OVERWRITE) @@ -98,11 +100,16 @@ char *handle_precision(t_pformat *pformat, char *str) int len; char *tmp; + if (pformat == NULL || str == NULL) + return (NULL); if (ft_strchr("diuxX", pformat->specifier) && pformat->precision >= 0) pformat->flags &= ~FLAG_ZERO; len = ft_strlen(str); if (pformat->precision == 0 && str[0] == '0') + { + free(str); return (ft_strdup("")); + } if (!ft_strchr("diuxXp", pformat->specifier) || len >= pformat->precision) return (str); if ((tmp = (char*)malloc(sizeof(char) * (pformat->precision + 1))) == NULL) diff --git a/libft b/libft -Subproject 5bf49994b911abc2b8ff3bdb525cdc23c71f210 +Subproject d8e5d376244c6cf92e52666634cddaaf4e492aa @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/28 04:25:09 by cacharle #+# #+# */ -/* Updated: 2019/11/13 09:27:58 by cacharle ### ########.fr */ +/* Updated: 2019/11/14 09:23:59 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,50 +38,51 @@ int main() /* ft_printf("[%05]\n"); */ /* printf("[%05]\n"); */ - int test = 42; - ft_printf("bonjour\n"); - ft_printf("char: %c\n", 'r'); - ft_printf("string: %s\n", "bonjour"); - ft_printf("pointer: %p\n", &test); - ft_printf("int: %d or %i\n", 45, 54); - ft_printf("uint: %u\n", 1 << 31); - ft_printf("hex lower: %x\n", 0xabcf012); - ft_printf("hex upper: %X\n", 0xabcf012); - ft_printf("percent: %%\n"); - ft_printf("multiple stuff: %d %u %d %x %d\n", 1, -2, 3, 0xa, 5); - - ft_printf("precision |%.9d|\n", 43); - printf("precision |%.9d|\n", 43); - ft_printf("string precision |%.9s|\n", "jesuisbonjourbonjour"); - printf("string precision |%.9s|\n", "jesuisbonjourbonjour"); - ft_printf("min width |%9d|\n", 43); - printf("min width |%9d|\n", 43); - ft_printf("zero padding |%09d|\n", 43); - printf("zero padding |%09d|\n", 43); - ft_printf("left adjusted |%-9d|\n", 43); - printf("left adjusted |%-9d|\n", 43); - ft_printf("string padding |%9s|\n", "bon"); - printf("string padding |%9s|\n", "bon"); - - ft_printf("width wildcard |%*d|\n", 5, 43); - printf("width wildcard |%*d|\n", 5, 43); - ft_printf("precision wildcard |%.*d|\n", 5, 43); - printf("precision wildcard |%.*d|\n", 5, 43); - ft_printf("precision/width wildcard |%*.*d|\n", 5, 3, 43); - printf("precision/width wildcard |%*.*d|\n", 5, 3, 43); - ft_printf("left adjusted |%*d|\n", -5, 43); - printf("left adjusted |%*d|\n", -5, 43); + /* int test = 42; */ + /* ft_printf("bonjour\n"); */ + /* ft_printf("char: %c\n", 'r'); */ + /* ft_printf("string: %s\n", "bonjour"); */ + /* ft_printf("pointer: %p\n", &test); */ + /* ft_printf("int: %d or %i\n", 45, 54); */ + /* ft_printf("uint: %u\n", 1 << 31); */ + /* ft_printf("hex lower: %x\n", 0xabcf012); */ + /* ft_printf("hex upper: %X\n", 0xabcf012); */ + /* ft_printf("percent: %%\n"); */ + /* ft_printf("multiple stuff: %d %u %d %x %d\n", 1, -2, 3, 0xa, 5); */ + /* */ + /* ft_printf("precision |%.9d|\n", 43); */ + /* printf("precision |%.9d|\n", 43); */ + /* ft_printf("string precision |%.9s|\n", "jesuisbonjourbonjour"); */ + /* printf("string precision |%.9s|\n", "jesuisbonjourbonjour"); */ + /* ft_printf("min width |%9d|\n", 43); */ + /* printf("min width |%9d|\n", 43); */ + /* ft_printf("zero padding |%09d|\n", 43); */ + /* printf("zero padding |%09d|\n", 43); */ + /* ft_printf("left adjusted |%-9d|\n", 43); */ + /* printf("left adjusted |%-9d|\n", 43); */ + /* ft_printf("string padding |%9s|\n", "bon"); */ + /* printf("string padding |%9s|\n", "bon"); */ + /* */ + /* ft_printf("width wildcard |%*d|\n", 5, 43); */ + /* printf("width wildcard |%*d|\n", 5, 43); */ + /* ft_printf("precision wildcard |%.*d|\n", 5, 43); */ + /* printf("precision wildcard |%.*d|\n", 5, 43); */ + /* ft_printf("precision/width wildcard |%*.*d|\n", 5, 3, 43); */ + /* printf("precision/width wildcard |%*.*d|\n", 5, 3, 43); */ + /* ft_printf("left adjusted |%*d|\n", -5, 43); */ + /* printf("left adjusted |%*d|\n", -5, 43); */ /* ft_printf("overwrite |%*3d|\n", 5, 43); */ /* printf("overwrite |%*3d|\n", 5, 43); */ /* ft_printf("overwrite neg |%*-1d|\n", 0, 43); */ /* printf("overwrite neg |%*-1d|\n", 0, 43); */ - ft_printf("pointer field width |%15p|\n", &test); - printf("pointer field width |%15p|\n", &test); + /* ft_printf("pointer field width |%15p|\n", &test); */ + /* printf("pointer field width |%15p|\n", &test); */ - ft_printf("bonjour%n", &test); - printf("%d\n", test); + /* ft_printf("bonjour%n", &test); */ + /* printf("%d\n", test); */ + ft_printf("%.0p, %.p", 0, 0); /* ft_printf("%f\n", 0.14159); */ /* printf("%f\n", 0.14159); */ Binary files differ |
