Пример #1
0
CodePage::CodePage()
{
	SET_SHARED_PTR(codepage);

	memset(m_pages, 0, sizeof(m_pages));
	memset(m_codes, 0, sizeof(m_codes));
	m_num = 0;

	// rozsireni tabulky o zakladni ascii znaky
	for (wchar_t c = ' '; c <= 'z';c++)
		AddChar(c);

	GetExec()->Register("specialchars", CodePage::c_specialchars, NULL, "Register next unicode chars.");
	//Register("quit",c_quit,NULL,"quit program");
	//Register("quit!",c_fquit,NULL,"force quit");
	//Register("help",c_help,NULL);
	//Register("list",c_list,NULL,"List all commands.");
}
Пример #2
0
void ApiGetExec(DWORD *argv)
{
	const char *path;
	DWORD exec[8];

	if ((argv[MSG_ATTR_ID] & MSG_MAP_MASK) != MSG_ATTR_ROMAP)
		return;
	path = (const char*)argv[MSG_ADDR_ID];
	if (CheckPathSize(path, argv[MSG_SIZE_ID]) == NULL)
		argv[MSG_RES_ID] = FS_ERR_ARGS_TOOLONG;
	else
		argv[MSG_RES_ID] = GetExec(pret[((THREAD_ID*)&argv[PTID_ID])->ProcID], path, argv[3], exec);
	KUnmapProcAddr((void*)path, argv);
	if (argv[MSG_RES_ID] == NO_ERROR)
	{
		exec[MSG_ATTR_ID] |= MSG_ATTR_FS;
		KSendMsg((THREAD_ID*)&argv[PTID_ID], exec, 0);
	}
}