// localiser-selon-prefixe.c

// << Algorithmique du texte >>
// Maxime Crochemore, Christophe Hancart et Thierry Lecroq
// Vuibert, 2001.

#include <stdio.h>
#include "chl.h"

void localiserSelonPrefixe(Mot x, Longueur m, int pi[], Mot y) {
   int i, j;

   i = 0;
   for (j = 0; *y != '\0'; ++j, ++y) {
      // Ici, x[0..i-1] est le plus long prefixe de x
      // qui est egalement un suffixe de y
      if (i == m)
         i = pi[m];
      while (i >= 0 && *y != x[i])
         i = pi[i];
      ++i;
      signalerSi(i == m);
   }
}