#include <stdio.h>

int
main( int argc, char **argv )
{
	FILE	*fp;
	static	unsigned	char	tmpbuf[2048];

	if ( argc != 2 ) {
		fprintf( stderr, "Usage:%s filename\n", argv[0] );
		exit(1);
	}

	fp = fopen( argv[1], "r" );

	if ( !fp ) {
		fprintf( stderr, "Cannot open %s\n", argv[1] );
		exit(1);
	}

	while( fgets( tmpbuf, 2048, fp ) != NULL ) {
		tmpbuf[strlen(tmpbuf)-1] = '\0';
		tokatakana( tmpbuf );
	} 

	return 0;
}

int
hiragana_p( char *buf )
{
	if (  ( strncmp( buf, "‚Ÿ", 2 ) >= 0 ) 
	   && ( strncmp( buf, "‚ñ", 2 ) <= 0 ) ) {
		return 1;
	}
	
	return 0;
} 

int
tokatakana( unsigned char *buf )
{
	int	i;
	int	len;
	int	c;

	len = strlen( buf );

	if ( len % 2 ) {
		fprintf( stderr, "Input error:%s\n", buf );
		return 0;
	}

	for ( i = 0; i < len; i += 2 ) {

		if ( hiragana_p( &buf[i] ) ) {
			c = buf[i+1]; 

			if ( strncmp( &buf[i], "‚Ý", 2 ) <= 0 ) {
				c += 160;
			}
			else {
				c += 161;
			}

			if ( c > 255 ) {
				buf[i] += 1;
				c -= 255;
				buf[i+1] = c;
			}
		}
	}

	printf( "%s\n", buf );

	return 1;
}
