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."); }
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); } }