Initial terminal emulation sketch
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
source = parse.cpp parserstate.cpp parser.cpp templates.cpp
|
source = parse.cpp parserstate.cpp parser.cpp templates.cpp terminal.cpp
|
||||||
objects = parserstate.o parser.o templates.o
|
objects = parserstate.o parser.o templates.o terminal.o
|
||||||
executables = parse
|
executables = parse
|
||||||
|
|
||||||
CXX = g++
|
CXX = g++
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ Parser::UTF8Parser::UTF8Parser()
|
|||||||
fprintf( stderr, "rtm requires a UTF-8 locale.\n" );
|
fprintf( stderr, "rtm requires a UTF-8 locale.\n" );
|
||||||
throw std::string( "rtm requires a UTF-8 locale." );
|
throw std::string( "rtm requires a UTF-8 locale." );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert( BUF_SIZE >= MB_CUR_MAX );
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Parser::Action *> Parser::UTF8Parser::input( char c )
|
std::vector<Parser::Action *> Parser::UTF8Parser::input( char c )
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
#include "terminal.hpp"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#ifndef TERMINAL_CPP
|
||||||
|
#define TERMINAL_CPP
|
||||||
|
|
||||||
|
#include <wchar.h>
|
||||||
|
#include "parser.hpp"
|
||||||
|
|
||||||
|
namespace Terminal {
|
||||||
|
class Terminal {
|
||||||
|
private:
|
||||||
|
Parser::UTF8Parser parser;
|
||||||
|
|
||||||
|
wchar_t *framebuffer;
|
||||||
|
size_t width, height;
|
||||||
|
|
||||||
|
size_t cursor_col, cursor_row;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Terminal();
|
||||||
|
~Terminal();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Terminal( const Terminal & );
|
||||||
|
Terminal &operator=( const Terminal & );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user