/*   -*- coding: utf-8 -*-  */
#include "Utf8Converter.h"
#include <ctype.h>

char *Utf8ConverterJumpToAlpha (Utf8Converter *cv1)
{
  unsigned char c1;
  unsigned char c2;
  if (!(c1=cv1->currentPosition[0]))return NULL;
  if ((c1 & 0x80)==0)   /* ascii */
    {
      if(!isalpha(c1))
	{
	  cv1->currentPosition++;
	  return Utf8ConverterJumpToAlpha (cv1);
	}
      return cv1->currentPosition;
    }
  if (!(c2=cv1->currentPosition[1]))
    {
      cv1->returnCode='X';   /* bad formed at end */
      return NULL;
    }
  switch(c1)
    {
    case 0xC2:
      switch(c2)
	{
	case 0x9C: case 0x8C: 
	  return cv1->currentPosition;
	default:
	  cv1->currentPosition+=2;
	  return Utf8ConverterJumpToAlpha (cv1);
	}
    case 0xC3:
      switch(c2)
	{
	case 0x87: case 0xA7: 
	case 0x88: case 0xA8: 
	case 0x89: case 0xA9: 
	  return cv1->currentPosition;
	default:
	  cv1->currentPosition+=2;
	  return Utf8ConverterJumpToAlpha (cv1);
	}
    case 0xC5:
      switch(c2)
	{
	case 0x92: case 0x93: 
	  return cv1->currentPosition;
	default:
	  cv1->currentPosition+=2;
	  return Utf8ConverterJumpToAlpha (cv1);
	}
    default:
	  cv1->currentPosition+=2;
	  return Utf8ConverterJumpToAlpha (cv1);
    }
}
