Ejemplo n.º 1
0
int default_action(int msg)
{
	switch(msg)
	{
	  case NEXT:deselectitem();nextitem();selectitem();break;
	  case PREV:deselectitem();previtem();selectitem();break;
	  case FORW:deselectitem();rightitem();selectitem();break;
	  case BACK:deselectitem();leftitem();selectitem();break;
	  case 'e':
	  case '\n':
	  case '\r':
			do_ok(msg);break;
	  case 0x1b:deselectitem();setup_flag=-1;break;
	  case UPDATE: default_update();break;
	  case UPDATE1: default_update1();break;
	  case TIMER:
	  case CLEAN:
	  	   	printmenu();break;
	  default:
	  if(msg>='1' && msg <= '9')default_digital(msg);
	  else return 0;
	  break;
	}
	return 1;
}
Ejemplo n.º 2
0
int mydict::query(const char *word)
{
	if (!working) return 0;
   int i;
   long index;
   const char *tmp;
   char item1[512],item2[30],item3[512];
   tmp=word;
   if(tmp==NULL) return 0;
   for(i=0;i<indexnum;i++)
   {
     if(strcasecmp(tmp,indexitem[i])<=0) break;
   }
   if(i==indexnum) i--;
   if(offset!=indexoffset[i])
   {
     offset=indexoffset[i];
     fseek(f1,offset,0);
     fread(buf,MAXLEN,1,f1);
   }
   cont=0;
   nextitem(item1,item2,item3);
   previtem(item1,item2,item3);
   while(1)
   {
     if(strcasecmp(tmp,item1)<=0) break;
     index=nextitem(item1,item2,item3);
     if(index<=0) break;
   }
   previtem(nearEnglishItem[0],nearMarkItem[0],nearChineseItem[0]);
   for(i=1;i<10;i++)
   {
     index=nextitem(nearEnglishItem[i],nearMarkItem[i],nearChineseItem[i]);
     if(index<=0) break;
   }
   nearNum=i;
   for(;i>1;i--)
   {
     index=previtem(item1,item2,item3);
     if(index<=0) break;
   }
   return nearNum;
}