OSDN Git Service

finalize changelog
[jnethack/source.git] / src / objnam.c
index 30b1cf3..491e89c 100644 (file)
@@ -5,7 +5,7 @@
 
 /* JNetHack Copyright */
 /* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000  */
-/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2021            */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2022            */
 /* JNetHack may be freely redistributed.  See license for details. */
 
 #include "hack.h"
@@ -52,6 +52,9 @@ struct Jitem {
 #define BSTRNCMPI(base, ptr, str, num) \
     ((ptr) < base || strncmpi((ptr), str, num))
 #define Strcasecpy(dst, src) (void) strcasecpy(dst, src)
+#if 1 /*JP*/
+#define STRNCMPEX(x, y) strncmp(x, y, l = strlen(y))
+#endif
 
 /* true for gems/rocks that should have " stone" appended to their names */
 #define GemStone(typ)                                                  \
@@ -1077,6 +1080,9 @@ struct obj *obj;
     struct obj bareobj;
     struct objclass saveobcls;
     int otyp = obj->otyp;
+#if 1 /*JP*/
+    int l = 0;
+#endif
 
     /* suppress user-supplied name */
     saveobcls.oc_uname = objects[otyp].oc_uname;
@@ -1105,12 +1111,12 @@ struct obj *obj;
         bareobj.spe = obj->spe;
 
     bufp = distant_name(&bareobj, xname); /* xname(&bareobj) */
-#if 0 /*JP:T*/
+#if 0 /*JP*/
     if (!strncmp(bufp, "uncursed ", 9))
         bufp += 9; /* Role_if(PM_PRIEST) */
 #else
-    if (!strncmp(bufp, "\8eô\82í\82ê\82Ä\82¢\82È\82¢", 14))
-        bufp += 14; /* Role_if(PM_PRIEST) */
+    if (!STRNCMPEX(bufp, "\8eô\82í\82ê\82Ä\82¢\82È\82¢"))
+        bufp += l; /* Role_if(PM_PRIEST) */
 #endif
 
     objects[otyp].oc_uname = saveobcls.oc_uname;
@@ -1308,8 +1314,9 @@ unsigned doname_flags;
                                 end (Strcat is used on the end) */
 #endif
     register char *bp = xname(obj);
-#if 1 /*JP*//*\8f\87\8f\98\93ü\82ê\91Ö\82¦\82É\8eg\82¤*/
-    char preprefix[PREFIX];
+#if 1 /*JP*/
+    char preprefix[PREFIX]; /*\8f\87\8f\98\93ü\82ê\91Ö\82¦\82É\8eg\82¤*/
+    int l = 0;
 #endif
 
     if (iflags.override_ID) {
@@ -1334,8 +1341,8 @@ unsigned doname_flags;
         ispoisoned = TRUE;
     }
 #else
-    if (!strncmp(bp, "\93Å\82Ì\93h\82ç\82ê\82½", 12) && obj->opoisoned) {
-        bp += 12;
+    if (!STRNCMPEX(bp, "\93Å\82Ì\93h\82ç\82ê\82½") && obj->opoisoned) {
+        bp += l;
         ispoisoned = TRUE;
     }
 #endif
@@ -3679,13 +3686,13 @@ struct obj *no_wish;
                 bp++;
             l = 0;
 #if 1 /*JP*//* \8cã\82É\90\94\8e\8c\82ª\82 \82é\82Æ\82«\82Í\8dí\8f\9c */
-            if(!strncmp(bp, "\8dû\82Ì", l = 4) ||
-               !strncmp(bp, "\96{\82Ì", l = 4) ||
-               !strncmp(bp, "\92\85\82Ì", l = 4) ||
-               !strncmp(bp, "\8cÂ\82Ì", l = 4) ||
-               !strncmp(bp, "\96\87\82Ì", l = 4) ||
-               !strncmp(bp, "\82Â\82Ì", l = 4) ||
-               !strncmp(bp, "\82Ì", l = 2))
+            if(!STRNCMPEX(bp, "\8dû\82Ì") ||
+               !STRNCMPEX(bp, "\96{\82Ì") ||
+               !STRNCMPEX(bp, "\92\85\82Ì") ||
+               !STRNCMPEX(bp, "\8cÂ\82Ì") ||
+               !STRNCMPEX(bp, "\96\87\82Ì") ||
+               !STRNCMPEX(bp, "\82Â\82Ì") ||
+               !STRNCMPEX(bp, "\82Ì"))
               ;
             else
               l = 0;
@@ -3702,20 +3709,20 @@ struct obj *no_wish;
         } else if (!strncmpi(bp, "blessed ", l = 8)
                    || !strncmpi(bp, "holy ", l = 5)) {
 #else
-        } else if (!strncmpi(bp, "\8fj\95\9f\82³\82ê\82½", l = 10)) {
+        } else if (!STRNCMPEX(bp, "\8fj\95\9f\82³\82ê\82½")) {
 #endif
             blessed = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "moist ", l = 6)
                    || !strncmpi(bp, "wet ", l = 4)) {
 #else
-        } else if (!strncmpi(bp, "\8e¼\82Á\82½", l = 6)
-                   || !strncmpi(bp, "\94G\82ê\82½", l = 6)) {
+        } else if (!STRNCMPEX(bp, "\8e¼\82Á\82½")
+                   || !STRNCMPEX(bp, "\94G\82ê\82½")) {
 #endif
 #if 0 /*JP:T*/
             if (!strncmpi(bp, "wet ", 4))
 #else
-            if (!strncmpi(bp, "\94G\82ê\82½", 6))
+            if (!STRNCMP2(bp, "\94G\82ê\82½"))
 #endif
                 wetness = rn2(3) + 3;
             else
@@ -3724,13 +3731,13 @@ struct obj *no_wish;
         } else if (!strncmpi(bp, "cursed ", l = 7)
                    || !strncmpi(bp, "unholy ", l = 7)) {
 #else
-        } else if (!strncmpi(bp, "\8eô\82í\82ê\82½", l = 8)) {
+        } else if (!STRNCMPEX(bp, "\8eô\82í\82ê\82½")) {
 #endif
             iscursed = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "uncursed ", l = 9)) {
 #else
-        } else if (!strncmpi(bp, "\8eô\82í\82ê\82Ä\82¢\82È\82¢", l = 14)) {
+        } else if (!STRNCMPEX(bp, "\8eô\82í\82ê\82Ä\82¢\82È\82¢")) {
 #endif
             uncursed = 1;
 #if 0 /*JP:T*/
@@ -3741,25 +3748,25 @@ struct obj *no_wish;
                    || !strncmpi(bp, "fireproof ", l = 10)
                    || !strncmpi(bp, "rotproof ", l = 9)) {
 #else
-        } else if (!strncmpi(bp, "\8eK\82Ñ\82È\82¢", l = 8)
-                   || !strncmpi(bp, "\95\85\90H\82µ\82È\82¢", l = 10)
-                   || !strncmpi(bp, "\88À\92è\82µ\82½", l = 8)
-                   || !strncmpi(bp, "\94R\82¦\82È\82¢", l = 8)) {
+        } else if (!STRNCMPEX(bp, "\8eK\82Ñ\82È\82¢")
+                   || !STRNCMPEX(bp, "\95\85\90H\82µ\82È\82¢")
+                   || !STRNCMPEX(bp, "\88À\92è\82µ\82½")
+                   || !STRNCMPEX(bp, "\94R\82¦\82È\82¢")) {
 #endif
             erodeproof = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "lit ", l = 4)
                    || !strncmpi(bp, "burning ", l = 8)) {
 #else
-        } else if (!strncmpi(bp, "\8cõ\82Á\82Ä\82¢\82é", l = 10)
-                   || !strncmpi(bp, "\94R\82¦\82Ä\82¢\82é", l = 10)) {
+        } else if (!STRNCMPEX(bp, "\8cõ\82Á\82Ä\82¢\82é")
+                   || !STRNCMPEX(bp, "\94R\82¦\82Ä\82¢\82é")) {
 #endif
             islit = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "unlit ", l = 6)
                    || !strncmpi(bp, "extinguished ", l = 13)) {
 #else
-        } else if (!strncmpi(bp, "\8fÁ\82¦\82Ä\82¢\82é", l = 10)) {
+        } else if (!STRNCMPEX(bp, "\8fÁ\82¦\82Ä\82¢\82é")) {
 #endif
             islit = 0;
             /* "unlabeled" and "blank" are synonymous */
@@ -3768,14 +3775,14 @@ struct obj *no_wish;
                    || !strncmpi(bp, "unlabelled ", l = 11)
                    || !strncmpi(bp, "blank ", l = 6)) {
 #else
-        } else if (!strncmpi(bp, "\83\89\83x\83\8b\82Ì\82È\82¢", l = 12)
-                   || !strncmpi(bp, "\90^\82Á\94\92\82È", l = 8)) {
+        } else if (!STRNCMPEX(bp, "\83\89\83x\83\8b\82Ì\82È\82¢")
+                   || !STRNCMPEX(bp, "\90^\82Á\94\92\82È")) {
 #endif
             unlabeled = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "poisoned ", l = 9)) {
 #else
-        } else if (!strncmpi(bp, "\93Å\82Ì\93h\82ç\82ê\82½", l = 12)) {
+        } else if (!STRNCMPEX(bp, "\93Å\82Ì\93h\82ç\82ê\82½")) {
 #endif
             ispoisoned = 1;
             /* "trapped" recognized but not honored outside wizard mode */
@@ -3789,39 +3796,39 @@ struct obj *no_wish;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "locked ", l = 7)) {
 #else
-        } else if (!strncmpi(bp, "\8c®\82Ì\8a|\82©\82Á\82½", l = 12)) {
+        } else if (!STRNCMPEX(bp, "\8c®\82Ì\8a|\82©\82Á\82½")) {
 #endif
             locked = 1, unlocked = broken = 0;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "unlocked ", l = 9)) {
 #else
-        } else if (!strncmpi(bp, "\8c®\82Ì\8a|\82©\82Á\82Ä\82¢\82È\82¢", l = 18)) {
+        } else if (!STRNCMPEX(bp, "\8c®\82Ì\8a|\82©\82Á\82Ä\82¢\82È\82¢")) {
 #endif
             unlocked = 1, locked = broken = 0;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "broken ", l = 7)) {
 #else
-        } else if (!strncmpi(bp, "\8c®\82Ì\89ó\82ê\82½", l = 10)) {
+        } else if (!STRNCMPEX(bp, "\8c®\82Ì\89ó\82ê\82½")) {
 #endif
             broken = 1, locked = unlocked = 0;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "greased ", l = 8)) {
 #else
-        } else if (!strncmpi(bp, "\96û\82Ì\93h\82ç\82ê\82½", l = 12)
-                   || !strncmpi(bp, "\8e\89\82Ì\93h\82ç\82ê\82½", l = 12)) {
+        } else if (!STRNCMPEX(bp, "\96û\82Ì\93h\82ç\82ê\82½")
+                   || !STRNCMPEX(bp, "\8e\89\82Ì\93h\82ç\82ê\82½")) {
 #endif
             isgreased = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "very ", l = 5)) {
 #else
-        } else if (!strncmpi(bp, "\82Æ\82Ä\82à", l = 6)) {
+        } else if (!STRNCMPEX(bp, "\82Æ\82Ä\82à")) {
 #endif
             /* very rusted very heavy iron ball */
             very = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "thoroughly ", l = 11)) {
 #else
-        } else if (!strncmpi(bp, "\82©\82È\82è", l = 6)) {
+        } else if (!STRNCMPEX(bp, "\82©\82È\82è")) {
 #endif
             very = 2;
 #if 0 /*JP:T*/
@@ -3830,8 +3837,8 @@ struct obj *no_wish;
                    || !strncmpi(bp, "burnt ", l = 6)
                    || !strncmpi(bp, "burned ", l = 7)) {
 #else
-        } else if (!strncmpi(bp, "\8eK\82Ñ\82½", l = 6)
-                   || !strncmpi(bp, "\94R\82¦\82½", l = 6)) {
+        } else if (!STRNCMPEX(bp, "\8eK\82Ñ\82½")
+                   || !STRNCMPEX(bp, "\94R\82¦\82½")) {
 #endif
             eroded = 1 + very;
             very = 0;
@@ -3839,8 +3846,8 @@ struct obj *no_wish;
         } else if (!strncmpi(bp, "corroded ", l = 9)
                    || !strncmpi(bp, "rotted ", l = 7)) {
 #else
-        } else if (!strncmpi(bp, "\95\85\90H\82µ\82½", l = 8)
-                   || !strncmpi(bp, "\95\85\82Á\82½", l = 6)) {
+        } else if (!STRNCMPEX(bp, "\95\85\90H\82µ\82½")
+                   || !STRNCMPEX(bp, "\95\85\82Á\82½")) {
 #endif
             eroded2 = 1 + very;
             very = 0;
@@ -3848,31 +3855,31 @@ struct obj *no_wish;
         } else if (!strncmpi(bp, "partly eaten ", l = 13)
                    || !strncmpi(bp, "partially eaten ", l = 16)) {
 #else
-        } else if (!strncmpi(bp, "\90H\82×\82©\82¯\82Ì", l = 10)) {
+        } else if (!STRNCMPEX(bp, "\90H\82×\82©\82¯\82Ì")) {
 #endif
             halfeaten = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "historic ", l = 9)) {
 #else
-        } else if (!strncmpi(bp, "\97ð\8ej\93I\82È", l = 8)) {
+        } else if (!STRNCMPEX(bp, "\97ð\8ej\93I\82È")) {
 #endif
             ishistoric = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "diluted ", l = 8)) {
 #else
-        } else if (!strncmpi(bp, "\94\96\82Ü\82Á\82½", l = 8)) {
+        } else if (!STRNCMPEX(bp, "\94\96\82Ü\82Á\82½")) {
 #endif
             isdiluted = 1;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "empty ", l = 6)) {
 #else
-        } else if (!strncmpi(bp, "\8bó\82Á\82Û\82Ì", l = 8)) {
+        } else if (!STRNCMPEX(bp, "\8bó\82Á\82Û\82Ì")) {
 #endif
             contents = EMPTY;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "small ", l = 6)) { /* glob sizes */
 #else
-        } else if (!strncmpi(bp, "\8f¬\82³\82¢", l = 6)) { /* glob sizes */
+        } else if (!STRNCMPEX(bp, "\8f¬\82³\82¢")) { /* glob sizes */
 #endif
             /* "small" might be part of monster name (mimic, if wishing
                for its corpse) rather than prefix for glob size; when
@@ -3885,7 +3892,7 @@ struct obj *no_wish;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "medium ", l = 7)) {
 #else
-        } else if (!strncmpi(bp, "\92\86\82­\82ç\82¢\82Ì", l = 10)) {
+        } else if (!STRNCMPEX(bp, "\92\86\82­\82ç\82¢\82Ì")) {
 #endif
             /* xname() doesn't display "medium" but without this
                there'd be no way to ask for the intermediate size
@@ -3894,7 +3901,7 @@ struct obj *no_wish;
 #if 0 /*JP:T*/
         } else if (!strncmpi(bp, "large ", l = 6)) {
 #else
-        } else if (!strncmpi(bp, "\91å\82«\82¢", l = 6)) {
+        } else if (!STRNCMPEX(bp, "\91å\82«\82¢")) {
 #endif
             /* "large" might be part of monster name (dog, cat, koboold,
                mimic) or object name (box, round shield) rather than
@@ -4113,7 +4120,8 @@ struct obj *no_wish;
     {
         /*JP \81u(\89ö\95¨\96¼)\82Ì\89ò\81v\82Í\8cÂ\81X\82ÉID\82ª\82 \82é\82Ì\82Å\95Ê\88µ\82¢ */
         int l = strlen(bp);
-        if (l > 4 && strncmp(bp + l - 4, "\82Ì\89ò", 4) == 0) {
+        int l2 = strlen("\82Ì\89ò");
+        if (l > 4 && strncmp(bp + l - l2, "\82Ì\89ò", l2) == 0) {
             if ((mntmp = name_to_mon(bp)) >= PM_GRAY_OOZE
                 && mntmp <= PM_BLACK_PUDDING) {
                 mntmp = NON_PM; /* lie to ourselves */
@@ -5158,7 +5166,10 @@ const char *
 gloves_simple_name(gloves)
 struct obj *gloves;
 {
+/*JP
     static const char gauntlets[] = "gauntlets";
+*/
+    static const char gauntlets[] = "\8f¬\8eè";
 
     if (gloves && gloves->dknown) {
         int otyp = gloves->otyp;
@@ -5170,7 +5181,10 @@ struct obj *gloves;
                     gauntlets))
             return gauntlets;
     }
+/*JP
     return "gloves";
+*/
+    return "\8eè\91Ü";
 }
 
 const char *