mirror of
https://github.com/Alcaro/Flips.git
synced 2026-09-02 16:04:36 -05:00
Allow using /dev/stderr as output under GTK, per #9
This commit is contained in:
@@ -1,69 +1,13 @@
|
||||
//Module name: Floating IPS, command line frontend
|
||||
//Author: Alcaro
|
||||
//Date: December 22, 2014
|
||||
//Date: See Git history
|
||||
//Licence: GPL v3.0 or higher
|
||||
|
||||
#include "flips.h"
|
||||
|
||||
#ifdef FLIPS_CLI
|
||||
class file_libc : public file {
|
||||
size_t size;
|
||||
FILE* io;
|
||||
|
||||
public:
|
||||
static file* create(const char * filename)
|
||||
{
|
||||
FILE* f = fopen(filename, "rb");
|
||||
if (!f) return NULL;
|
||||
return new file_libc(f);
|
||||
}
|
||||
|
||||
private:
|
||||
file_libc(FILE* io) : io(io)
|
||||
{
|
||||
fseek(io, 0, SEEK_END);
|
||||
size = ftell(io);
|
||||
}
|
||||
|
||||
public:
|
||||
size_t len() { return size; }
|
||||
|
||||
bool read(uint8_t* target, size_t start, size_t len)
|
||||
{
|
||||
fseek(io, start, SEEK_SET);
|
||||
return (fread(target, 1,len, io) == len);
|
||||
}
|
||||
|
||||
~file_libc() { fclose(io); }
|
||||
};
|
||||
|
||||
file* file::create(const char * filename) { return file_libc::create(filename); }
|
||||
|
||||
|
||||
class filewrite_libc : public filewrite {
|
||||
FILE* io;
|
||||
|
||||
public:
|
||||
static filewrite* create(const char * filename)
|
||||
{
|
||||
FILE* f = fopen(filename, "wb");
|
||||
if (!f) return NULL;
|
||||
return new filewrite_libc(f);
|
||||
}
|
||||
|
||||
private:
|
||||
filewrite_libc(FILE* io) : io(io) {}
|
||||
|
||||
public:
|
||||
bool append(const uint8_t* data, size_t len)
|
||||
{
|
||||
return (fwrite(data, 1,len, io)==len);
|
||||
}
|
||||
|
||||
~filewrite_libc() { fclose(io); }
|
||||
};
|
||||
|
||||
filewrite* filewrite::create(const char * filename) { return filewrite_libc::create(filename); }
|
||||
file* file::create(const char * filename) { return file::create_libc(filename); }
|
||||
filewrite* filewrite::create(const char * filename) { return filewrite::create_libc(filename); }
|
||||
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
|
||||
Reference in New Issue
Block a user