|
|
@@ -0,0 +1,51 @@ |
|
|
|
/* |
|
|
|
* Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic |
|
|
|
* |
|
|
|
* Xop 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. |
|
|
|
*/ |
|
|
|
|
|
|
|
#include <xolatile/xtandard.h> |
|
|
|
#include <xolatile/xtandard.c> |
|
|
|
|
|
|
|
int main (int argc, char * * argv) { |
|
|
|
int file = -1; |
|
|
|
int size = 0; |
|
|
|
int offset = 0; |
|
|
|
|
|
|
|
unsigned char * buffer = NULL; |
|
|
|
|
|
|
|
if (argc != 2) { |
|
|
|
fatal_failure (1, "xop: xop input"); |
|
|
|
} |
|
|
|
|
|
|
|
file = file_open (argv [1], O_RDONLY); |
|
|
|
size = file_size (file); |
|
|
|
|
|
|
|
buffer = allocate (size); |
|
|
|
|
|
|
|
file_read (file, buffer, size); |
|
|
|
|
|
|
|
file = file_close (file); |
|
|
|
|
|
|
|
do { |
|
|
|
int byte = (int) buffer [offset]; |
|
|
|
if (byte == 0X90) { |
|
|
|
echo_new_line (); |
|
|
|
terminal_style (EFFECT_NORMAL, COLOUR_YELLOW); |
|
|
|
echo_byte ((int) buffer [offset]); |
|
|
|
terminal_style (-1, -1); |
|
|
|
} else { |
|
|
|
echo_byte (buffer [offset]); |
|
|
|
} |
|
|
|
|
|
|
|
++offset; |
|
|
|
} while (offset != size); |
|
|
|
|
|
|
|
echo_new_line (); |
|
|
|
|
|
|
|
buffer = deallocate (buffer); |
|
|
|
|
|
|
|
return (EXIT_SUCCESS); |
|
|
|
} |