/*   -*- coding: utf-8 -*-  */

#include "Utf8Converter.h"
#include "Buffer.h"
#include <stdio.h>
#include <string.h>

extern char *optarg;
extern int   optind;
int getopt();

int kOption;
int sOption;
char kSep;

Buffer *bufLine;
Buffer *bufKey;
char *line;

int main(argc,argv)
     int argc;
     char **argv;
{
  int cOption;
  kOption=0;
  sOption=0;
  kSep='\t';
  bufLine=NewBuffer();
  bufKey=NewBuffer();

  while((cOption=getopt(argc,argv,"ksK:"))!=EOF)
     {switch (cOption)
	 {
	 case 'k':
	   kOption=1;
	   break;

	 case 'K':
	   kSep=*optarg;
	   break;
	   
	 case 's':
	   sOption=1;
	   break;
	 }
     }
  
  while ((line=BufferGets(bufLine)))
    {
      if (kOption)
	{
	  char *kPos;
	  kPos=strchr(line, kSep);
	  if (kPos)
	    {
	      BufferStrncpy(bufKey, line, kPos-line);
	      if (sOption) printf ("%s",  Utf8StringToSort(BufferString(bufKey)));
	      else printf ("%s",  Utf8StringToLower(BufferString(bufKey)));
	      printf ("%s\n", kPos);
	    }
	  else printf("%s\n", line);
	}
      else
	{
	  if (sOption) printf ("%s\n",  Utf8StringToSort(line));
	  else printf ("%s\n",  Utf8StringToLower(line));
	}
    }
}
