mirror of
https://github.com/radareorg/radare2.git
synced 2025-03-04 12:27:40 +00:00

- Replaced by ragg2 - the new r_egg based tool for r2 * Add r_egg_assemble as a 2nd step for compilation * Fix memory leak in r_egg_free * Add support for 'cmp' and more 'test' variants for x86.nz - Ignore 'dword ptr' string - More test cases * Fix SCSIZE issue in rasc2 -s --HG-- rename : binr/rarc2/Makefile => binr/old.rarc2/Makefile rename : binr/rarc2/README => binr/old.rarc2/README rename : binr/rarc2/config.def.h => binr/old.rarc2/config.def.h rename : binr/rarc2/config.h => binr/old.rarc2/config.h rename : binr/rarc2/emit_arm.c => binr/old.rarc2/emit_arm.c rename : binr/rarc2/emit_x64.c => binr/old.rarc2/emit_x64.c rename : binr/rarc2/emit_x86.c => binr/old.rarc2/emit_x86.c rename : binr/rarc2/i/libc.r => binr/old.rarc2/i/libc.r rename : binr/rarc2/i/socket.r => binr/old.rarc2/i/socket.r rename : binr/rarc2/osxtest.r => binr/old.rarc2/osxtest.r rename : binr/rarc2/out.c => binr/old.rarc2/out.c rename : binr/rarc2/rarc2-tool => binr/old.rarc2/rarc2-tool rename : binr/rarc2/rarc2.c => binr/old.rarc2/rarc2.c rename : binr/rarc2/rarc2.h => binr/old.rarc2/rarc2.h rename : binr/rarc2/t/Makefile => binr/old.rarc2/t/Makefile rename : binr/rarc2/t/argv.r => binr/old.rarc2/t/argv.r rename : binr/rarc2/t/bytedump.r => binr/old.rarc2/t/bytedump.r rename : binr/rarc2/t/data.r => binr/old.rarc2/t/data.r rename : binr/rarc2/t/dump.r => binr/old.rarc2/t/dump.r rename : binr/rarc2/t/hello.r => binr/old.rarc2/t/hello.r rename : binr/rarc2/t/hi.r => binr/old.rarc2/t/hi.r rename : binr/rarc2/t/if.r => binr/old.rarc2/t/if.r rename : binr/rarc2/t/inline.r => binr/old.rarc2/t/inline.r rename : binr/rarc2/t/input.r => binr/old.rarc2/t/input.r rename : binr/rarc2/t/loop.r => binr/old.rarc2/t/loop.r rename : binr/rarc2/t/ptr.r => binr/old.rarc2/t/ptr.r rename : binr/rarc2/t/rawsys.r => binr/old.rarc2/t/rawsys.r rename : binr/rarc2/t/rawsys64.r => binr/old.rarc2/t/rawsys64.r rename : binr/rarc2/t/regs.r => binr/old.rarc2/t/regs.r rename : binr/rarc2/t/ret.r => binr/old.rarc2/t/ret.r rename : binr/rarc2/t/room.r => binr/old.rarc2/t/room.r rename : binr/rarc2/t/segfault.r => binr/old.rarc2/t/segfault.r rename : binr/rarc2/t/shell.r => binr/old.rarc2/t/shell.r rename : binr/rarc2/t/sub.r => binr/old.rarc2/t/sub.r rename : binr/rarc2/t/syscall.r => binr/old.rarc2/t/syscall.r rename : binr/rarc2/test.r => binr/old.rarc2/test.r rename : libr/egg/t/syscall.r => binr/ragg2/syscall.r
62 lines
1.1 KiB
C
62 lines
1.1 KiB
C
/* pancake // nopcode.org -- 2010 -- output module for rcc */
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdarg.h>
|
|
#include <unistd.h>
|
|
|
|
static char *output = NULL;
|
|
static int output_len;
|
|
static int output_size;
|
|
|
|
void rcc_init() {
|
|
output_size = 1024;
|
|
output_len = 0;
|
|
output = malloc (output_size);
|
|
}
|
|
|
|
void rcc_puts(const char *str) {
|
|
int len = strlen (str);
|
|
if (len+output_len >= output_size) {
|
|
output_size += 1024 + len;
|
|
output = realloc (output, output_size);
|
|
}
|
|
memcpy (output+output_len, str, len);
|
|
output_len += len;
|
|
}
|
|
|
|
void rcc_printf(const char *fmt, ...) {
|
|
va_list ap;
|
|
char buf[1024];
|
|
va_start (ap, fmt);
|
|
vsnprintf (buf, sizeof (buf), fmt, ap);
|
|
rcc_puts (buf);
|
|
va_end (ap);
|
|
}
|
|
|
|
void rcc_reset () {
|
|
output_len = 0;
|
|
}
|
|
|
|
char *rcc_get () {
|
|
char *buf = malloc (output_len);
|
|
if (buf) memcpy (buf, output, output_len);
|
|
return buf;
|
|
}
|
|
|
|
void rcc_flush () {
|
|
write (1, output, output_len);
|
|
rcc_reset ();
|
|
}
|
|
|
|
#if MAIN
|
|
void main () {
|
|
rcc_out_init ();
|
|
rcc_printf ("((%d))\n", 23);
|
|
rcc_puts ("Hello World\n");
|
|
rcc_puts ("((hehe))\n");
|
|
rcc_flush ();
|
|
}
|
|
#endif
|