-/* File: japanese.c */
-
+/*!
+ * @file japanese.c
+ * @brief 日本語処理関数
+ * @date 2014/07/07
+ */
#include "angband.h"
struct convert_key
{
- cptr key1;
- cptr key2;
+ concptr key1;
+ concptr key2;
};
static const convert_key s2j_table[] = {
{NULL,NULL}
};
-/* シンダリンを日本語の読みに変換する */
-void sindarin_to_kana(char *kana, const char *sindarin)
+/*!
+ * @brief シンダリンを日本語の読みに変換する
+ * @param kana 変換後の日本語文字列ポインタ
+ * @param sindarin 変換前のシンダリン文字列ポインタ
+ * @return なし
+ * @details
+ */
+void sindarin_to_kana(char *kana, concptr sindarin)
{
char buf[256];
int idx;
sprintf(kana, "%s$", sindarin);
for (idx = 0; kana[idx]; idx++)
- if (isupper(kana[idx])) kana[idx] = tolower(kana[idx]);
+ if (isupper(kana[idx])) kana[idx] = (char)tolower(kana[idx]);
for (idx = 0; s2j_table[idx].key1 != NULL; idx++)
{
- cptr pat1 = s2j_table[idx].key1;
- cptr pat2 = s2j_table[idx].key2;
+ concptr pat1 = s2j_table[idx].key1;
+ concptr pat2 = s2j_table[idx].key2;
int len = strlen(pat1);
char *src = kana;
char *dest = buf;
}
-/*日本語動詞活用 (打つ>打って,打ち etc) */
-/* JVERB_AND: 殴る,蹴る > 殴り,蹴る */
-/* JVERB_TO: 殴る,蹴る > 殴って蹴る */
-/* JVERB_OR: 殴る,蹴る > 殴ったり蹴ったり */
-
+/*! 日本語動詞活用 (打つ>打って,打ち etc)
+ * JVERB_AND: 殴る,蹴る > 殴り,蹴る
+ * JVERB_TO: 殴る,蹴る > 殴って蹴る
+ * JVERB_OR: 殴る,蹴る > 殴ったり蹴ったり */
static const struct jverb_table_t {
const char* from;
const char* to[3];
{ NULL, {"そして", "ことにより", "ことや"}},
};
-void jverb(const char *in , char *out , int flag)
+/*!
+ * @brief jverb_table_tに従って動詞を活用する
+ * @param in 変換元文字列ポインタ
+ * @param out 変換先文字列ポインタ
+ * @param flag 変換種類を指定(JVERB_AND/JVERB_TO/JVERB_OR)
+ * @return なし
+ * @details
+ */
+void jverb(concptr in, char *out, int flag)
{
const struct jverb_table_t * p;
int in_len = strlen(in);
strcpy(&out[in_len], p->to[flag - 1]);
}
-
-/*
- * Convert SJIS string to EUC string
+/*!
+ * @brief 文字コードをSJISからEUCに変換する / Convert SJIS string to EUC string
+ * @param str 変換する文字列のポインタ
+ * @return なし
+ * @details
*/
void sjis2euc(char *str)
{
}
-/*
- * Convert EUC string to SJIS string
+/*!
+ * @brief 文字コードをEUCからSJISに変換する / Convert EUC string to SJIS string
+ * @param str 変換する文字列のポインタ
+ * @return なし
+ * @details
*/
void euc2sjis(char *str)
{
}
-/*
- * strを環境に合った文字コードに変換し、変換前の文字コードを返す。
- * strの長さに制限はない。
- *
- * 0: Unknown
- * 1: ASCII (Never known to be ASCII in this function.)
- * 2: EUC
- * 3: SJIS
+/*!
+ * @brief strを環境に合った文字コードに変換し、変換前の文字コードを返す。strの長さに制限はない。
+ * @param str 変換する文字列のポインタ
+ * @return
+ * 0: Unknown<br>
+ * 1: ASCII (Never known to be ASCII in this function.)<br>
+ * 2: EUC<br>
+ * 3: SJIS<br>
*/
byte codeconv(char *str)
{
return code;
}
-/* 文字列sのxバイト目が漢字の1バイト目かどうか判定する */
-bool iskanji2(cptr s, int x)
+/*!
+ * @brief 文字列sのxバイト目が漢字の1バイト目かどうか判定する
+ * @param s 判定する文字列のポインタ
+ * @param x 判定する位置(バイト)
+ * @return 漢字の1バイト目ならばTRUE
+ */
+bool iskanji2(concptr s, int x)
{
int i;
* @param str 判定する文字列へのポインタ
* @return 文字列の文字コードがASCIIならTRUE、そうでなければFALSE
*/
-static bool is_ascii_str(cptr str)
+static bool is_ascii_str(concptr str)
{
for (;*str; str++) {
if (!(0x00 < *str && *str <= 0x7f))
* @param str 判定する文字列へのポインタ
* @return 文字列の文字コードがUTF-8ならTRUE、そうでなければFALSE
*/
-static bool is_utf8_str(cptr str)
+static bool is_utf8_str(concptr str)
{
const unsigned char* p;
for (p = (const unsigned char*)str; *p; p++) {
{{0xef, 0xbc, 0x8d}, {0xe2, 0x88, 0x92}}, /* FULLWIDTH HYPHEN-MINUS -> MINUS SIGN */
};
+/*!
+ * @brief EUCがシステムコードである環境下向けにUTF-8から変換処理を行うサブルーチン
+ * @param str 変換する文字列のポインタ
+ * @return なし
+ */
static void ms_to_jis_unicode(char* str)
{
unsigned char* p;
for (i = 0; i < sizeof(ms_to_jis_unicode_conv) / sizeof(ms_to_jis_unicode_conv[0]); ++ i) {
const struct ms_to_jis_unicode_conv_t *c = &ms_to_jis_unicode_conv[i];
if (memcmp(p, c->from, 3) == 0) {
- printf("hoge\n");
memcpy(p, c->to, 3);
}
}