]> granicus.if.org Git - procps-ng/commitdiff
top: utf8 utils should observe indentation conventions
authorJim Warner <james.warner@comcast.net>
Fri, 6 Oct 2017 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Sat, 14 Oct 2017 10:44:56 +0000 (21:44 +1100)
Gosh, all this time we used indents of 4 spaces, not 3
spaces which were always the top standard indentation.

[ and we made our 'utf8_embody' a little more robust ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
top/top.c

index 7677ce6bea10f337722a1d62884f7ad6a9e6d5eb..0020c2c4b2cbbd5be72633c6bb2898f773d1d1fa 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -668,16 +668,16 @@ static char UTF8_tab[] = {
          * Determine difference between total bytes versus printable
          * characters in that passed, potentially multi-byte, string */
 static int utf8_delta (const char *str) {
-    const unsigned char *p = (const unsigned char *)str;
-    int clen, cnum = 0;
-
-    while (*p) {
-        // -1 represents a decoding error, pretend it's untranslated ...
-        if (0 > (clen = UTF8_tab[*p])) return 0;
-        p += clen;
-        ++cnum;
-    }
-    return (int)((const char *)p - str) - cnum;
+   const unsigned char *p = (const unsigned char *)str;
+   int clen, cnum = 0;
+
+   while (*p) {
+      // -1 represents a decoding error, pretend it's untranslated ...
+      if (0 > (clen = UTF8_tab[*p])) return 0;
+      p += clen;
+      ++cnum;
+   }
+   return (int)((const char *)p - str) - cnum;
 } // end: utf8_delta
 
 
@@ -685,16 +685,18 @@ static int utf8_delta (const char *str) {
          * Determine a physical end within a potential multi-byte string
          * where maximum printable chars could be accommodated in width */
 static int utf8_embody (const char *str, int width) {
-    const unsigned char *p = (const unsigned char *)str;
-    int clen, cnum = 0;
-
-    while (*p) {
-        // -1 represents a decoding error, pretend it's untranslated ...
-        if (0 > (clen = UTF8_tab[*p])) return width;
-        p += clen;
-        if (++cnum >= width) break;
-    }
-    return (int)((const char *)p - str);
+   const unsigned char *p = (const unsigned char *)str;
+   int clen, cnum = 0;
+
+   if (width > 0) {
+      while (*p) {
+         // -1 represents a decoding error, pretend it's untranslated ...
+         if (0 > (clen = UTF8_tab[*p])) return width;
+         p += clen;
+         if (++cnum >= width) break;
+      }
+   }
+   return (int)((const char *)p - str);
 } // end: utf8_embody
 
 
@@ -717,19 +719,19 @@ static const char *utf8_justify (const char *str, int width, int justr) {
          * Returns a physical or logical column number given a
          * multi-byte string and a target column value */
 static int utf8_proper_col (const char *str, int col, int tophysical) {
-    const unsigned char *p = (const unsigned char *)str;
-    int clen, tlen = 0, cnum = 0;
-
-    while (*p) {
-        // -1 represents a decoding error, don't encourage repositioning ...
-        if (0 > (clen = UTF8_tab[*p])) return col;
-        if (cnum + 1 > col && tophysical) break;
-        p += clen;
-        tlen += clen;
-        if (tlen > col && !tophysical) break;
-        ++cnum;
-    }
-    return tophysical ? tlen : cnum;
+   const unsigned char *p = (const unsigned char *)str;
+   int clen, tlen = 0, cnum = 0;
+
+   while (*p) {
+      // -1 represents a decoding error, don't encourage repositioning ...
+      if (0 > (clen = UTF8_tab[*p])) return col;
+      if (cnum + 1 > col && tophysical) break;
+      p += clen;
+      tlen += clen;
+      if (tlen > col && !tophysical) break;
+      ++cnum;
+   }
+   return tophysical ? tlen : cnum;
 } // end: utf8_proper_col
 \f
 /*######  Misc Color/Display support  ####################################*/