Fixes from Heikki Linnakangas :
authorTeodor Sigaev
Mon, 10 Sep 2007 10:39:56 +0000 (10:39 +0000)
committerTeodor Sigaev
Mon, 10 Sep 2007 10:39:56 +0000 (10:39 +0000)
Apparently it's a bug I introduced when I refactored spell.c to use the
readline function for reading and recoding the input file. I didn't
notice that some calls to STRNCMP used the non-lowercased version of the
input line.

src/backend/tsearch/spell.c

index e9bb9995627f92fc4c7efa1d2c1faf419f5477ed..9074b29af37a49b6355027a296547770eb7f3d48 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/tsearch/spell.c,v 1.2 2007/08/25 00:03:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/tsearch/spell.c,v 1.3 2007/09/10 10:39:56 teodor Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -733,7 +733,6 @@ NIImportAffixes(IspellDict * Conf, const char *filename)
    while ((recoded = t_readline(affix)) != NULL)
    {
        pstr = lowerstr(recoded);
-       pfree(recoded);
 
        lineno++;
 
@@ -813,8 +812,8 @@ NIImportAffixes(IspellDict * Conf, const char *filename)
            flag = (unsigned char) *s;
            goto nextline;
        }
-       if (STRNCMP(str, "COMPOUNDFLAG") == 0 || STRNCMP(str, "COMPOUNDMIN") == 0 ||
-           STRNCMP(str, "PFX") == 0 || STRNCMP(str, "SFX") == 0)
+       if (STRNCMP(recoded, "COMPOUNDFLAG") == 0 || STRNCMP(recoded, "COMPOUNDMIN") == 0 ||
+           STRNCMP(recoded, "PFX") == 0 || STRNCMP(recoded, "SFX") == 0)
        {
            if (oldformat)
                ereport(ERROR,
@@ -834,6 +833,7 @@ NIImportAffixes(IspellDict * Conf, const char *filename)
        NIAddAffix(Conf, flag, flagflags, mask, find, repl, suffixes ? FF_SUFFIX : FF_PREFIX);
 
    nextline:
+       pfree(recoded);
        pfree(pstr);
    }
    FreeFile(affix);