示例#1
0
RPSTR_FUNC(Bool32) RPSTR_CorrectSpell(int32_t version)
{
int32_t           n,  i, rf=-1;
CSTR_line       line;
//char            snapstr[256];
CSTR_rast       rb=(CSTR_rast)0, re=(CSTR_rast)0;
Bool32          disable_new_dict=FALSE, disable_check_word=FALSE;
//CSTR_attr       lattr;

exit_enable = FALSE;
snap_enable=TRUE;
skip_line=FALSE;
n=CSTR_GetMaxNumber ();

// 12.06.2002 E.P.
if (is_turkish_language(language))
	disable_new_dict = TRUE;

LDPUMA_StartLoop( hSnapSpell, n );
for(i=1;i<=n;i++)
    {
	LDPUMA_LoopNext( hSnapSpell );
    line = CSTR_GetLineHandle (i, version);
    if( !line )
        continue;
    skip_line=FALSE;

	if (!correct_line_spell(line, &re, &rb, i, disable_new_dict, disable_check_word, &rf))
		return FALSE;

/*  вынесено в функцию correct_line_spell

	CSTR_GetLineAttr(line,&lattr);
//    if( !(lattr.Flags & CSTR_STR_CapDrop) )
    if( !LDPUMA_SkipEx(hSnapSpell,TRUE,TRUE,1) && snap_enable )
        {
        sprintf(snapstr,"before spelling line %d",i);
        Snap_Console(snapstr);
        LDPUMA_RasterText("before spelling");
        LDPUMA_CSTR_Monitor(hSnapSpell,line,0,myMonitorProc);

        if( exit_enable )
            {
            LDPUMA_DestroyRasterWnd();
            return FALSE;
            }
        }


    if( !rpstr_correct_spell(line,&rb,&re,&rf,i,disable_new_dict, disable_check_word) )
        {
        sprintf("speller error : %s ",sp_err);
        Snap_Console(snapstr);
        LDPUMA_DestroyRasterWnd();
        return FALSE;
        }
    if( !skip_line && !LDPUMA_SkipEx(hSnapSpell,TRUE,TRUE,1) && snap_enable )
        {
        sprintf(snapstr,"after spelling line %d",i);
        Snap_Console(snapstr);
        LDPUMA_RasterText("after spelling");
        LDPUMA_CSTR_Monitor(hSnapSpell,line,0,myMonitorProc);
        }
    if( exit_enable )
        {
        LDPUMA_DestroyRasterWnd();
        return FALSE;
        }
*/
    }

if( re )
    {
    CSTR_rast_attr  attr;
    CSTR_GetAttr(re,&attr);
    attr.flg_spell |= CSTR_fa_spell_nocarrying;
    CSTR_SetAttr(re,&attr);
    }
if( !LDPUMA_SkipEx(hSnapSpell,TRUE,TRUE,1) )
    LDPUMA_DestroyRasterWnd();
return TRUE;
}
示例#2
0
	void SnpLoopNext( SnpTreeNode* node )
	{
		LDPUMA_LoopNext( node ? *(Handle *)node:NULL );
	};