-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.h
More file actions
executable file
·90 lines (86 loc) · 2.51 KB
/
Copy pathmain.h
File metadata and controls
executable file
·90 lines (86 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#ifndef _PRINTF_H
#define _PRINTF_H
#include <stdarg.h>
#include <stdio.h>
#include <unistd.h>
#include <limits.h>
#include <stdlib.h>
#define OUTPUT_BUF_SIZE 1024
#define BUF_FLUSH -1
#define NULL_STRING "(null)"
#define PARAMS_INIT {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
#define CONVERT_LOWERCASE 1
#define CONVERT_UNSIGNED 2
/**
* struct parameters - parameters struct
*
* @unsign: flag if unsigned value
*
* @plus_flag: on if plus_flag specified
* @space_flag: on if hashtag_flag specified
* @hashtag_flag: on if _flag specified
* @zero_flag: on if _flag specified
* @minus_flag: on if _flag specified
*
* @width: field width specified
* @precision: field precision specified
*
* @h_modifier: on if h_modifier is specified
* @l_modifier: on if l_modifier is specified
*
*/
typedef struct parameters
{
unsigned int unsign : 1;
unsigned int plus_flag : 1;
unsigned int space_flag : 1;
unsigned int hashtag_flag : 1;
unsigned int zero_flag : 1;
unsigned int minus_flag : 1;
unsigned int width;
unsigned int precision;
unsigned int h_modifier : 1;
unsigned int l_modifier : 1;
} params_t;
/**
* struct specifier - Struct token
*
* @specifier: format token
* @f: The function associated
*/
typedef struct specifier
{
char *specifier;
int (*f)(va_list, params_t *);
} specifier_t;
int _puts(char *str);
int _putchar(int c);
int _printf(const char *format, ...);
int prt_c(va_list ap, params_t *params);
int prt_int(va_list ap, params_t *params);
int prt_str(va_list ap, params_t *params);
int prt_prcnt(va_list ap, params_t *params);
int prt_S(va_list ap, params_t *params);
char *cnvrt(long int num, int base, int flags, params_t *params);
int prt_uns(va_list ap, params_t *params);
int prt_adrs(va_list ap, params_t *params);
int (*spec(char *s))(va_list ap, params_t *params);
int prt_fnc(char *s, va_list ap, params_t *params);
int flag(char *s, params_t *params);
int mod(char *s, params_t *params);
char *width(char *s, params_t *params, va_list ap);
int prt_hex(va_list ap, params_t *params);
int prt_HEX(va_list ap, params_t *params);
int prt_bin(va_list ap, params_t *params);
int prt_oct(va_list ap, params_t *params);
int prt_cstm(char *start, char *stop, char *except);
int prt_rev(va_list ap, params_t *params);
int prt_rot13(va_list ap, params_t *params);
int _isdigit(int c);
int _strlen(char *s);
int prt_num(char *str, params_t *params);
int prt_numr(char *str, params_t *params);
int prt_numl(char *str, params_t *params);
void prms(params_t *params, va_list ap);
char *prec(char *p, params_t *params, va_list ap);
#endif