35#define FLAG_HASH (1 << 0)
36#define FLAG_ZERO (1 << 1)
37#define FLAG_MINUS (1 << 2)
38#define FLAG_PLUS (1 << 3)
39#define FLAG_SPACE (1 << 4)
int total
Definition ft_printf.h:63
t_fmt * fmt
Definition ft_printf.h:66
int flags
Definition ft_printf.h:49
int precision
Definition ft_printf.h:51
int width
Definition ft_printf.h:50
char specifier
Definition ft_printf.h:52
int malloc_error
Definition ft_printf.h:65
int write_error
Definition ft_printf.h:64
char * prepend_alternative_form(char *str, char specifier, t_pf *pf)
Prepends the 0x or 0X prefix to a hexadecimal string.
Definition printf_alternative_form.c:61
void format_and_print_id(t_fmt *fmt, va_list *args, t_pf *pf)
Handles d and i format specifiers for ft_printf.
Definition format_and_print_numbers.c:40
void process_format_string(const char *format, va_list *args, t_pf *pf)
Walks through the format string and dispatches format handlers.
Definition process_format_string.c:124
int ft_printf(const char *format,...)
Prints formatted output according to the format string.
Definition ft_printf.c:46
void write_char_safely(int fd, char c, t_pf *pf)
Safely writes a single character to a file descriptor.
Definition write_safely.c:112
int requires_alternative_form(char specifier, char *str)
Checks whether the alternative form (#) should be applied.
Definition printf_alternative_form.c:35
int get_alternative_form_length(char specifier)
Returns the prefix length for x and X when using # flag.
Definition printf_alternative_form.c:97
char * handle_precision_p(t_fmt *fmt, char *str, int *len, t_pf *pf)
void handle_space_flag_p(t_pf *pf, int *padding)
void format_and_print_percent(t_fmt *fmt, t_pf *pf)
Formats and prints a literal percent sign (%%).
Definition format_print_csper.c:38
void format_and_print_u(t_fmt *fmt, va_list *args, t_pf *pf)
Handles u format specifier for ft_printf.
Definition format_and_print_numbers.c:76
int initialize_printf_structs(t_pf *pf)
Allocates and initializes the structures required by ft_printf.
Definition initialize_printf_structs.c:74
void print_right_aligned_p(t_fmt *fmt, char *str, int padding, t_pf *pf)
void write_safely(int fd, char *str, t_pf *pf)
Safely writes a null-terminated string to a file descriptor.
Definition write_safely.c:37
void handle_minus_flag_p(char *str, int padding, t_pf *pf)
void write_safely_len(int fd, char *str, size_t len, t_pf *pf)
Safely writes len bytes from a string to a file descriptor.
Definition write_safely.c:76
void format_and_print_x(t_fmt *fmt, va_list *args, int upper, t_pf *pf)
Handles x and X format specifiers for ft_printf.
Definition format_and_print_numbers.c:111
char * handle_precision_int(t_fmt *fmt, char *str, int *len, t_pf *pf)
Applies precision formatting to a numeric string.
Definition handle_precision_int.c:125
int handle_width(t_fmt *fmt, size_t len)
Computes the number of padding characters to apply.
Definition format_utils.c:82
void print_formatted_number(t_fmt *fmt, char *str, int len, t_pf *pf)
Final formatter and dispatcher for integer output.
Definition print_formatted_number.c:190
void format_and_print_s(t_fmt *fmt, va_list *args, t_pf *pf)
Formats and prints a string (s).
Definition format_print_csper.c:114
int is_valid_flag(char c)
Checks if a character is a valid format flag.
Definition initialize_printf_structs.c:100
void print_padding(int padding, char pad_char, t_pf *pf)
Prints a series of padding characters.
Definition format_utils.c:39
int handle_precision_s(t_fmt *fmt, int len)
Applies precision limit to string length.
Definition format_utils.c:62
int setup_format(const char **format, t_fmt *fmt)
Parses a full format specification (flags, width, precision, specifier).
Definition setup_format.c:141
void format_and_print_c(t_fmt *fmt, va_list *args, t_pf *pf)
Formats and prints a character (c).
Definition format_print_csper.c:74
Format specifier data.
Definition ft_printf.h:48
State struct for ft_printf.
Definition ft_printf.h:62