* mode & 0x01 : force user to answer "YES" or "N"
* mode & 0x02 : don't allow ESCAPE key
*/
+#define CHECK_STRICT 0
bool get_check_strict(cptr prompt, int mode)
{
int i;
/* Hack -- Build a "useful" prompt */
if (mode & 1)
{
+#if CHECK_STRICT
#ifdef JP
/* (79-8)¥Ð¥¤¥È¤Î»ØÄê, prompt¤¬Ä¹¤«¤Ã¤¿¾ì¹ç,
(79-9)ʸ»ú¤Î¸å½ªÃ¼Ê¸»ú¤¬½ñ¤¹þ¤Þ¤ì¤ë.
buf[79-8]='\0';
#endif
strcat(buf, "[yes/no]");
+#else
+#ifdef JP
+ /* (79-8)¥Ð¥¤¥È¤Î»ØÄê, prompt¤¬Ä¹¤«¤Ã¤¿¾ì¹ç,
+ (79-9)ʸ»ú¤Î¸å½ªÃ¼Ê¸»ú¤¬½ñ¤¹þ¤Þ¤ì¤ë.
+ ±Ñ¸ì¤ÎÊý¤Îstrncpy¤È¤Ï°ã¤¦¤Î¤ÇÃí°Õ.
+ else¤ÎÊý¤Îʬ´ô¤âƱÍÍ. --henkma
+ */
+ mb_strlcpy(buf, prompt, 80-15);
+#else
+ strncpy(buf, prompt, 79-15);
+ buf[79-8]='\0';
+#endif
+ strcat(buf, "[(O)k/(C)ancel]");
+
+#endif
}
else
{
while (TRUE)
{
i = inkey();
-
+#if CHECK_STRICT /* ¤³¤³¤«¤é(¤Á¤ç¤Ã¤ÈŤ¤¤Î¤Ç¥³¥á¥ó¥È) */
if (i == 'y' || i == 'Y')
{
if (!(mode & 1))
}
}
if (!(mode & 2) && (i == ESCAPE)) break;
- if (strchr("Nn", i)) break;
+ if (i == 'N' || i == 'n')
+ {
+ if (!(mode & 1))
+ break;
+ else
+ {
+#ifdef JP
+ prt("n (NO¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤)", 0, strlen(buf));
+#else
+ prt("n (Please answer NO.)", 0, strlen(buf));
+#endif
+ i = inkey();
+ if (i == 'o' || i == 'O')
+ {
+ break;
+ }
+ prt("", 0, strlen(buf));
+ }
+ }
+#else
+ if ( mode & 1 )
+ {
+ if ( i == 'o' || i == 'O' )
+ {
+ i = 'Y';
+ break;
+ }
+ }
+ else if (i == 'y' || i == 'Y')
+ {
+ break;
+ }
+ if (!(mode & 2) && (i == ESCAPE)) break;
+ if ( mode & 1 )
+ {
+ if ( i == 'c' || i == 'C' )
+ {
+ break;
+ }
+ }
+ else if (i == 'n' || i == 'N')
+ {
+ break;
+ }
+#endif /* ¤³¤³¤Þ¤Ç(¤Á¤ç¤Ã¤ÈŤ¤¤Î¤Ç¥³¥á¥ó¥È) */
bell();
}