Esempio n. 1
0
void XlateTableWriteBase::WriteXlate(XlateTable *xt){
	unsigned i;
	for (i = 0; i < 10; i++)md[i] = xt->CopyMode('0'+i);
	lvl = 1;
	XlateTableRec *tb = md[0];
	int ch;
	for (ch = 1; ch <256; ch++){
		if (tb->dat[ch] != 0) {
			if (65535u != (i = ustridx(LowerCharList, ch))){
				if (!EqXE(tb->dat[ch], tb->dat[UpperCharList[i]])) {
					DoItem(tb->dat[ch], lvl);
					if (tb->dat[ch]->n != 0) DoNext(tb->dat[ch]->n);
				}
			}
			else {
				DoItem(tb->dat[ch],lvl);
				if (65535u != (i = ustridx(UpperCharList, ch))){
					if (EqXE(tb->dat[ch], tb->dat[LowerCharList[i]]))
						DoItem(tb->dat[LowerCharList[i]], 255);
				}
				if (tb->dat[ch]->n != 0) DoNext(tb->dat[ch]->n);
			}; // if (0 == (cpt ... else ...
		};  // if (tb-<dat[ch] != 0 ...
	}; // for (ch = 1 ...
//	WriteData(&c254, 1);
	UNCH tmp[2]; tmp[0] = 254; tmp[1] = 0;
	WriteData(tmp,2);
};
Esempio n. 2
0
void CMyPropertySheet::OnBnClickedNext()
{
	//如果是“完成”则直接退出程序
	CString csCaption;
	nextButton->GetWindowText(csCaption);
	if(0 == strcmp(FINISHCAPTION,csCaption))
	{
		if(0 != DoNext())
		{
			return;
		}

		OnClose();//直接关闭
		return;
	}

	DoNext();
}
Esempio n. 3
0
void XlateTableWriteBase::DoNext( XlateEntryData *p ){
	lvl++;
	while (p != 0){
		DoItem(p, lvl);
		if ((p->f != 0) && (EqXE(p, p->f))){DoItem(p, 256); p= p->f;}
		if (p->n != 0) DoNext(p->n);
		p = p->f;
	}
	lvl--;
} ;
Esempio n. 4
0
bool Iterator::NextShared(Environment &env, int id, Value &value)
{
	if (_pShare.get() == nullptr) {
		for (;;) {
			if (!DoNext(env, value)) return false;
			if (!IsSkipInvalid() || value.IsValid()) break;
		}
	} else if (_pShare->Next(id, value)) {
		// nothing to do
	} else if (_pShare->IsDone()) {
		return false;
	} else {
		for (;;) {
			if (!DoNext(env, value)) {
				_pShare->SetDone();
				return false;
			}
			if (!IsSkipInvalid() || value.IsValid()) break;
		}
		_pShare->Store(id, value);
	}
	return true;
}