Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
    }
Exemplo n.º 3
0
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 $"));
		}
	}