Array<NetNode> NetNode::Enum0(HANDLE hEnum) { Array<NetNode> r; DWORD cEntries = (DWORD)-1, cbBuffer = 0x4000; Buffer<NETRESOURCE> lpnr(cbBuffer); while(::WNetEnumResource(hEnum, &cEntries, lpnr, &cbBuffer) == 0) { for(int i = 0; i < (int)cEntries; i++) { NETRESOURCE& sn = lpnr[i]; const char *s = sn.lpRemoteName; NetNode& nn = r.Add(); NETRESOURCE& n = nn.net; n = sn; nn.local = n.lpLocalName; nn.remote = n.lpRemoteName; nn.comment = n.lpComment; nn.provider = n.lpProvider; nn.SetPtrs(); if(s) { if(s[0] == '\\' && s[1] == '\\') nn.name = FromSystemCharset(DosInitCaps(GetFileName(s))); else nn.name = FromSystemCharset(s); } if(n.lpComment && *n.lpComment) if(nn.name.GetCount()) nn.name = String().Cat() << FromSystemCharset(n.lpComment) << " (" << nn.name << ")"; else nn.name = FromSystemCharset(n.lpComment); if(!(n.dwUsage & RESOURCEUSAGE_CONTAINER)) nn.path = FromSystemCharset(n.lpRemoteName); } } ::WNetCloseEnum(hEnum); return r; }
int MORF0::kchk1( VARIANTIDE_AHEL **variandid, FSXSTRING *word, int S6naPikkus, VARIANTIDE_AHEL **sobivad_variandid, char *paha_koht, const int paha_koha_suurus) { int i, tyvepik; int res; int algp; FSXSTRING sona, end; signed char lnr; VARIANTIDE_AHEL **mille_taha, *variant, *sobiv_variant, **sobiva_taha, *tmp; //ok CVARIANTIDE_AHEL cvahe_variant; KOMPONENT *tyvi, *lopp; sona = *word; mille_taha = variandid; /* kuhu uus komponentide ahel paigutada */ sobiva_taha = sobivad_variandid; if ( S6naPikkus > ENDLEN ) algp = ENDLEN - 1; /* v�imalik max pikkusega l�pp */ else { if (sona[0] == (FSxCHAR)'e' || sona[0] == V_O_UML) algp = S6naPikkus - 1; /* tyvi v�ib olla 1 t�heline */ else algp = S6naPikkus - 2; /* tyvi olgu v�hemalt 2 t�heline */ } for (i = 0; i <= algp; i++) { if (i) { tyvepik = S6naPikkus - i; end = (const FSxCHAR *)(sona.Mid(tyvepik)); if(mrfFlags.Chk(MF_GENE)) /* vt ainult algv. loppe */ { if (loend.head_gene_lopud.Get((FSxCHAR *)(const FSxCHAR *)end)) lnr = lpnr( (const FSxCHAR *)end ); else continue; /* vt 1 t�he v�rra l�hemat l�ppu */ } else /* vt. koiki loppe */ { lnr = lpnr( (const FSxCHAR *)end ); if (lnr == -1) /* sellist l�ppu pole olemas */ continue; /* vt 1 t�he v�rra l�hemat l�ppu */ } } else /* null-l�pp */ { tyvepik = S6naPikkus; lnr = null_lopp; } /* mingi lopp leitud */ variant = lisa_1ahel(mille_taha); mille_taha = &variant; tyvi = lisa_esimene(variant); if (!tyvi) { return CRASH; } lisa_min_info(tyvi, word, 0, tyvepik); lopp = lisa_1komp(&tyvi); if (!lopp) { return CRASH; } lisa_min_info(lopp, word, tyvepik, i); lisa_psl_info(lopp, K_LOPP, lnr); /* otsi ty ja kontrolli ta sobivust lopuga */ res = ty_lp(lopp, 0, tyvepik, &cvahe_variant.ptr, paha_koht,paha_koha_suurus); if (res > ALL_RIGHT) { return res; /* viga! */ } if (!cvahe_variant.ptr) continue; /* tyve polnud */ for (tmp=cvahe_variant.ptr; tmp; tmp=tmp->jargmine_variant) { /* kopeeri sobivate hulka koik tyved, mis selle lopuga sobivad */ sobiv_variant = lisa_ahel(sobiva_taha, tmp); if (!sobiv_variant) { return CRASH; } if(mrfFlags.Chk(MF_SPELL)) // aitab 1 tyvest kyll break; sobiva_taha = &sobiv_variant; } ahelad_vabaks(&cvahe_variant.ptr); if(mrfFlags.Chk(MF_SPELL)) { return ALL_RIGHT; /* rohkem variante ei vt. */ } } return ALL_RIGHT; }
void DCTRD::open_d2(void) { register int i; readeel(); readends(); // teeb loppude mass. readgrs(); // teeb lgr mass. readfms(); // teeb vormide mass. readfgrs(); // teeb lgr mass. readsuf(); // teeb suf mass. readprf(); // teeb pref mass. // teeb loend[i] mass. for (i=0; i < LOENDEID-1; i++) // tegelik loendite arv <= LOENDEID-1 { readloe(i); } sg_g = vormnr(FSxSTR("sg g")); sg_n = vormnr(FSxSTR("sg n")); sg_p = vormnr(FSxSTR("sg p")); adt = vormnr(FSxSTR("adt")); pl_n = vormnr(FSxSTR("pl n")); pl_g = vormnr(FSxSTR("pl g")); pl_p = vormnr(FSxSTR("pl p")); da = vormnr(FSxSTR("da")); ma = vormnr(FSxSTR("ma")); suva_vrm = SUVA_VRM; if(sg_g == -1||sg_n == -1 ||ma == -1) // valikuline test { throw(VEAD(ERR_MORFI_PS6N,ERR_ROTTEN,__FILE__,__LINE__, "$Revision: 521 $")); } lopp_a = lpnr(FSxSTR("a")); lopp_d = lpnr(FSxSTR("d")); lopp_da = lpnr(FSxSTR("da")); lopp_dama = lpnr(FSxSTR("dama")); lopp_dav = lpnr(FSxSTR("dav")); lopp_des = lpnr(FSxSTR("des")); lopp_dud = lpnr(FSxSTR("dud")); lopp_es = lpnr(FSxSTR("es")); lopp_ma = lpnr(FSxSTR("ma")); lopp_mata = lpnr(FSxSTR("mata")); lopp_nud = lpnr(FSxSTR("nud")); lopp_t = lpnr(FSxSTR("t")); lopp_ta = lpnr(FSxSTR("ta")); lopp_tama = lpnr(FSxSTR("tama")); lopp_tav = lpnr(FSxSTR("tav")); lopp_te = lpnr(FSxSTR("te")); lopp_tes = lpnr(FSxSTR("tes")); lopp_tud = lpnr(FSxSTR("tud")); lopp_v = lpnr(FSxSTR("v")); lopp_0 = null_lopp; suva_lp = SUVA_LP; if((signed char)lopp_d == (signed char)-1 || (signed char)lopp_ma == (signed char)-1) // valikuline test { throw(VEAD(ERR_MORFI_PS6N,ERR_ROTTEN,__FILE__,__LINE__, "$Revision: 521 $")); } }