|
|
@@ -0,0 +1,67 @@ |
|
|
|
/* |
|
|
|
Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic |
|
|
|
|
|
|
|
Xhartae is free software! You will redistribute it or modify it under the terms of the GNU General Public License by Free Software Foundation. |
|
|
|
And when you do redistribute it or modify it, it will use either version 3 of the License, or (at yours truly opinion) any later version. |
|
|
|
It is distributed in the hope that it will be useful or harmful, it really depends... But no warranty what so ever, seriously. See GNU/GPLv3. |
|
|
|
*/ |
|
|
|
|
|
|
|
#ifndef CHAPTER_3_SOURCE |
|
|
|
#define CHAPTER_3_SOURCE |
|
|
|
|
|
|
|
#include "chapter_3.h" |
|
|
|
|
|
|
|
void print (char * format, ...) { |
|
|
|
va_list argument_array; |
|
|
|
|
|
|
|
int offset, length; |
|
|
|
|
|
|
|
int integer; |
|
|
|
char * string; |
|
|
|
double ieee754; |
|
|
|
|
|
|
|
length = string_length (format); |
|
|
|
|
|
|
|
va_start (argument_array, format); |
|
|
|
|
|
|
|
for (offset = 0; offset != length; ++offset) { |
|
|
|
if (format [offset] == '%') { |
|
|
|
++offset; |
|
|
|
if (format [offset] == '%') { |
|
|
|
out ("%", 1); |
|
|
|
} else if (format [offset] == 'i') { |
|
|
|
integer = va_arg (argument_array, int); |
|
|
|
echo (number_to_string (integer)); |
|
|
|
} else if (format [offset] == 'F') { |
|
|
|
ieee754 = va_arg (argument_array, double); |
|
|
|
echo (number_to_string ((int) ieee754)); |
|
|
|
} else if (format [offset] == 's') { |
|
|
|
string = va_arg (argument_array, char *); |
|
|
|
echo (string); |
|
|
|
} else { |
|
|
|
out ("?", 1); |
|
|
|
} |
|
|
|
} else if (format [offset] == '/') { |
|
|
|
++offset; |
|
|
|
if (format [offset] == '/') { |
|
|
|
out ("/", 1); |
|
|
|
} |
|
|
|
} else { |
|
|
|
out (& format [offset], 1); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
va_end (argument_array); |
|
|
|
} |
|
|
|
|
|
|
|
void file_print (char * format, ...) { |
|
|
|
(void) format; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
void string_print (char * format, ...) { |
|
|
|
(void) format; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
#endif |