Source: src/si_system.cc


Annotated List
Files
Globals
Hierarchy
Index

#include "si_system.h"

int console_visible = 0;
char **argv;
int argc;
SYSTEM sys;

string last_error;

//Display error message
void error(char* formatstr, ...)
{
	va_list         argptr;
	static char     msg[1024];

	va_start(argptr, formatstr);
	vsprintf(msg, formatstr, argptr);
	va_end(argptr);

	if(last_error!=msg) {
		cout << "Error: " << msg << endl;
		if(con) {
			con->printf("Error: ");
			con->printf(msg);
			con->printf("\n");
			if(console_visible) { con->draw_page(); }
		}
		last_error = msg;
	} 
}

void error(string s)
{
	error("%s",s.c_str());
}

void message(char* formatstr, ...)
{
	va_list         argptr;
	static char     msg[1024];
	
	va_start(argptr, formatstr);
	vsprintf(msg, formatstr, argptr);
	va_end(argptr);
				
	cout << msg << endl;
	if(con) {
		con->printf(msg);
		con->printf("\n");
		if(console_visible)  { con->draw_page(); }
	}
}

void message(string s)
{
	message("%s",s.c_str());
}

void wait_no_key()
{
	while(keypressed()) {
		clear_keybuf();
		usleep(1);
	}
}

void wait()
{
	wait_no_key();
	while(!keypressed()) {
		usleep(1);
	}
	clear_keybuf();
}

char tkey[KEY_MAX];

void tst_key_init()
{
	bzero(tkey, KEY_MAX);
}

int tst_key(int k)
{
	if(!key[k]) {
		tkey[k] = 0;
		return 0;
	} else {
		if(tkey[k]) {
			return 0;
		} else {
			tkey[k] = 1;
			return 1;
		}
	}
}




void SYSTEM::init()
{
	env.clear();
	argc = 0;
	argv = NULL;
}

void SYSTEM::set(int c, char **v)
{
	int i;
	string s, par;
	
	argc = c;
	argv = v;
	for(i=0;i!=c;i++) {
		s = argv[i];
		if(s[0] == '-') {
			if(!par.empty()) {
				env[par] = SYSTEM_TRUE;
				par.clear();
			}
			par = s.substr(1,s.length());
		} else {
			if(par.empty()) {
				par = "nopar";
			}
			env[par] = s;
			par = "";
		}
		if(!par.empty()) {
			env[par] = SYSTEM_TRUE;
			cout << par << endl;
		}
	}
}

/* Return data */
string SYSTEM::get(string name)
{
	return env[name];
}

int SYSTEM::exist(string name)
{
	return !env[name].empty();
}





fd_set rfds;
struct timeval tv;
int retval;
char term_buf[1024];


void terminal_init()
{ 
	bzero(term_buf, 1023);
	tv.tv_sec = 0;
	tv.tv_usec = 0;
}

string terminal()
{
	string s = "";
	FD_ZERO(&rfds);
	FD_SET(0, &rfds);
	retval = select(1, &rfds, NULL, NULL, &tv);
	if (retval) {
		read(0, term_buf, 1023);
		s = term_buf;
		bzero(term_buf, 1023);
	}
	return s;
}

Generated by: georgik on armada on Sat Jul 24 07:07:15 2004, using kdoc 2.0a54.