]> granicus.if.org Git - nethack/commitdiff
Some easy loss-of-precision fixes.
authornhkeni <keni@his.com>
Wed, 16 Mar 2022 21:49:29 +0000 (17:49 -0400)
committernhkeni <keni@his.com>
Wed, 16 Mar 2022 21:49:29 +0000 (17:49 -0400)
src/bones.c
src/botl.c
src/end.c
src/engrave.c
src/invent.c
src/mondata.c

index 54eeb0dd69730aee3bd1c265b1759d226eb3524c..5326e08df5f58052923fdda5e961fafbbc3397a6 100644 (file)
@@ -690,7 +690,7 @@ boolean
 bones_include_name(const char *name)
 {
     struct cemetery *bp;
-    int len;
+    size_t len;
     char buf[BUFSZ];
 
     /* prepare buffer by appending terminal hyphen to name, to avoid partial
index 8ec54885d9fadfd9ac101429afb74a5f3b8bf1a3..6d1b1d18dec16a188dbe55245b58ffc58014f234 100644 (file)
@@ -111,7 +111,7 @@ do_statusline2(void)
             time (in moves), varying number of status conditions */
          dloc[QBUFSZ], hlth[QBUFSZ], expr[QBUFSZ], tmmv[QBUFSZ], cond[QBUFSZ];
     register char *nb;
-    unsigned dln, dx, hln, xln, tln, cln;
+    size_t dln, dx, hln, xln, tln, cln;
     int hp, hpmax, cap;
     long money;
 
@@ -227,7 +227,7 @@ do_statusline2(void)
     } else {
         if (dln + 1 + hln + 1 + xln + 1 + tln + 1 + cln + 1 > MAXCO) {
             panic("bot2: second status line exceeds MAXCO (%u > %d)",
-                  (dln + 1 + hln + 1 + xln + 1 + tln + 1 + cln + 1), MAXCO);
+                  (unsigned)(dln + 1 + hln + 1 + xln + 1 + tln + 1 + cln + 1), MAXCO);
         } else if ((dln - dx) + 1 + hln + 1 + xln + 1 + cln <= COLNO) {
             Snprintf(newbot2, sizeof(newbot2), "%s %s %s %s %s", dloc, hlth,
                      expr, cond, tmmv);
@@ -391,14 +391,15 @@ title_to_mon(const char *str, int *rank_indx, int *title_length)
 void
 max_rank_sz(void)
 {
-    register int i, r, maxr = 0;
+    register int i;
+    size_t r, maxr = 0;
     for (i = 0; i < 9; i++) {
         if (g.urole.rank[i].m && (r = strlen(g.urole.rank[i].m)) > maxr)
             maxr = r;
         if (g.urole.rank[i].f && (r = strlen(g.urole.rank[i].f)) > maxr)
             maxr = r;
     }
-    g.mrank_sz = maxr;
+    g.mrank_sz = (int) maxr;
     return;
 }
 
@@ -2929,7 +2930,8 @@ hlattr2attrname(int attrib, char *buf, int bufsz)
 {
     if (attrib && buf) {
         char attbuf[BUFSZ];
-        int k, first = 0;
+        int first = 0;
+        size_t k;
 
         attbuf[0] = '\0';
         if (attrib == HL_NONE) {
@@ -2949,7 +2951,7 @@ hlattr2attrname(int attrib, char *buf, int bufsz)
             Strcat(attbuf, first++ ? "+dim" : "dim");
 
         k = strlen(attbuf);
-        if (k < (bufsz - 1))
+        if (k < (size_t)(bufsz - 1))
             Strcpy(buf, attbuf);
         return buf;
     }
index bf1f92ea640e3e0c8d3651acc2b27fdf978803b4..c3b371613e9e6d18f37256bf11c7d5add771eb5e 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -207,7 +207,7 @@ NH_panictrace_libc(void)
 {
 #ifdef PANICTRACE_LIBC
     void *bt[20];
-    size_t count, x;
+    int count, x;
     char **info, buf[BUFSZ];
 
     raw_print("  Generating more information you may report:\n");
index f290b80d4f0fed1a56f2c97517de7b9930046439..7b9573781bf0f11031bdb2c1f77218314727b8bc 100644 (file)
@@ -535,7 +535,7 @@ doengrave(void)
     const char *everb;          /* Present tense of engraving type */
     const char *eloc; /* Where the engraving is (ie dust/floor/...) */
     char *sp;         /* Place holder for space count of engr text */
-    int len;          /* # of nonspace chars of new engraving text */
+    size_t len;          /* # of nonspace chars of new engraving text */
     struct engr *oep = engr_at(u.ux, u.uy);
     /* The current engraving */
     struct obj *otmp; /* Object selected with which to engrave */
index 569bb6eaf38061176ba22eeb90d137ae2504c281..4231c8dee373bff8a0b30df4654d73e85a97e38f 100644 (file)
@@ -3622,7 +3622,7 @@ stackobj(struct obj *obj)
 boolean
 mergable(register struct obj *otmp, register struct obj *obj)
 {
-    int objnamelth = 0, otmpnamelth = 0;
+    size_t objnamelth = 0, otmpnamelth = 0;
 
     /* fail if already the same object, if different types, if either is
        explicitly marked to prevent merge, or if not mergable in general */
index b8b31b2313e3496c708ffc3a2b50bc0957984d5a..138919340028e1f6f75327ecc78f52ef2a0f97a7 100644 (file)
@@ -736,7 +736,8 @@ name_to_monplus(
     register int mntmp = NON_PM;
     register char *s, *str, *term;
     char buf[BUFSZ];
-    int len, slen, mgend, matchgend = -1;
+    int len, mgend, matchgend = -1;
+    size_t slen;
     boolean exact_match = FALSE;
 
     if (remainder_p)
@@ -866,13 +867,13 @@ name_to_monplus(
 
         m_i_len = (int) strlen(mons[i].pmnames[mgend]);
         if (m_i_len > len && !strncmpi(mons[i].pmnames[mgend], str, m_i_len)) {
-            if (m_i_len == slen) {
+            if (m_i_len == (int) slen) {
                 mntmp = i;
                 len = m_i_len;
                 matchgend = mgend;
                 exact_match = TRUE;
                 break; /* exact match */
-            } else if (slen > m_i_len
+            } else if ((int) slen > m_i_len
                        && (str[m_i_len] == ' '
                            || !strcmpi(&str[m_i_len], "s")
                            || !strncmpi(&str[m_i_len], "s ", 2)