A new user interface for you! Read more...

File abiword-3.0.0-linkgrammar.patch of Package abiword

Index: plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp
===================================================================
--- plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp	(revision 34626)
+++ plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp	(revision 34627)
@@ -145,59 +145,57 @@
 	  }
 	  AbiGrammarError * pWordMap = new  AbiGrammarError();
 	  pWordMap->m_iErrLow = iLow;
-	  pWordMap->m_iErrHigh = iLow + strlen(sentence_get_nth_word(sent, i));
+	  pWordMap->m_iErrHigh = iLow + strlen(linkage_get_word(linkage, i));
 	  pWordMap->m_iWordNum = i;
 	  vecMapOfWords.addItem(pWordMap);
 	  bool bNew = false;
-	  if(!sentence_nth_word_has_disjunction(sent, i))
+
+	  //UT_DEBUGMSG(("|%s| NULL LINK\n",sent->word[i].string));
+	  if(pErr == NULL)
 	  {
-	    //UT_DEBUGMSG(("|%s| NULL LINK\n",sent->word[i].string));
-	    if(pErr == NULL)
+	    pErr = new AbiGrammarError();
+	    bNew = true;
+	  }
+	  if(bNew || (pErr->m_iWordNum + 1 < i))
+	  {
+	    if(!bNew)
 	    {
-	      pErr = new AbiGrammarError();
-	      bNew = true;
+		  if(pErr)
+		  {
+		    delete pErr;
+		  }
+		  pErr = new AbiGrammarError();
 	    }
-	    if(bNew || (pErr->m_iWordNum + 1 < i))
+	    iHigh = iLow + strlen(linkage_get_word(linkage, i));
+	    pErr->m_iErrLow = iLow + iOff -1;
+	    pErr->m_iErrHigh = iHigh + iOff -1;
+	    if(pErr->m_iErrLow < 0)
 	    {
-	      if(!bNew)
-	      {
-		if(pErr)
-		{
-		  delete pErr;
-		}
-		pErr = new AbiGrammarError();
-	      }
-	      iHigh = iLow + strlen(sentence_get_nth_word(sent, i));
-	      pErr->m_iErrLow = iLow + iOff -1;
-	      pErr->m_iErrHigh = iHigh + iOff -1;
-	      if(pErr->m_iErrLow < 0)
-	      {
-		pErr->m_iErrLow = 0;
-	      }
-	      if(pErr->m_iErrHigh < totlen-1)
-	      {
+		  pErr->m_iErrLow = 0;
+	    }
+	    if(pErr->m_iErrHigh < totlen-1)
+	    {
 		  pErr->m_iErrHigh += 1;
-	      }
-	      pErr->m_iWordNum = i;
-	      // UT_DEBUGMSG(("Add Error %x low %d High %d\n",pErr,pErr->m_iErrLow,pErr->m_iErrHigh));
-	      pT->m_vecGrammarErrors.addItem(pErr);
-		  pErr = NULL;
 	    }
-	    else
+	    pErr->m_iWordNum = i;
+	    // UT_DEBUGMSG(("Add Error %x low %d High %d\n",pErr,pErr->m_iErrLow,pErr->m_iErrHigh));
+	    pT->m_vecGrammarErrors.addItem(pErr);
+		pErr = NULL;
+	  }
+	  else
+	  {
+	    //
+	    // Expand the sqiggle
+	    //
+	    iHigh = iLow + strlen(linkage_get_word(linkage, i)) + iOff;
+	    pErr->m_iErrHigh = iHigh;
+	    if(pErr->m_iErrHigh < totlen-1)
 	    {
-	      //
-	      // Expand the sqiggle
-	      //
-	      iHigh = iLow + strlen(sentence_get_nth_word(sent, i)) + iOff;
-	      pErr->m_iErrHigh = iHigh;
-	      if(pErr->m_iErrHigh < totlen-1)
-	      {
 		  pErr->m_iErrHigh += 1;
-	      }
-	      pErr->m_iWordNum = i;
 	    }
+	    pErr->m_iWordNum = i;
 	  }
-	  iLow += strlen(sentence_get_nth_word(sent, i));
+	  iLow += strlen(linkage_get_word(linkage, i));
 	}
 	//
 	// No NULL links but still an error , mark the whole sentence bad.
@@ -229,30 +227,6 @@
 	//  }
 	UT_UTF8String sErr = linkage_get_violation_name(linkage);
 	//	UT_DEBUGMSG(("Top Level error message |%s|\n",sErr.utf8_str()));
-	UT_sint32 count = linkage_get_num_sublinkages(linkage);
-	//
-	// Find linkages with violations
-	//
-	for(i=0; i<count;i++)
-	{
-	  UT_sint32 iok = linkage_set_current_sublinkage(linkage, i);
-	  if(iok == 0)
-	    continue;
-	  UT_sint32 j = 0;
-	  UT_sint32 iNum = linkage_get_num_links(linkage);
-	  for(j=0;j< iNum;j++)
-	    //	  char * szViolation = linkage_get_violation_name(linkage);
-	  //if(szViolation != NULL)
-	  {
-            // debug disabled
-	    //UT_sint32 iLword = linkage_get_link_lword(linkage,j);
-	    //const char * szLword =  linkage_get_word(linkage,iLword);
-	    //UT_sint32 iRword = linkage_get_link_rword(linkage,j);
-	    //const char * szRword =  linkage_get_word(linkage,iRword);
-	    //UT_DEBUGMSG(("Link %d |%s| and |%s|\n",i,szLword,szRword));
-	    //UT_DEBUGMSG(("Left Word num %d Right Word num %d\n",iLword,iRword));
-	  }
-	}
 	linkage_delete(linkage);
 	for(i=0; i<  vecMapOfWords.getItemCount(); i++)
 	{