]> diplodocus.org Git - nmh/blobdiff - sbr/base64.c
uip: Replace some ints that are only ever 0 or 1 with bool.
[nmh] / sbr / base64.c
index f24e9fe28b7e46ff4116ede3d74c3524a63dc742..2afad491afbfccb41d404d109adc777feff09b96 100644 (file)
@@ -29,8 +29,8 @@ writeBase64aux (FILE *in, FILE *out, int crlf)
 {
     unsigned int cc, n;
     unsigned char inbuf[3];
-    int skipnl = 0;
 
+    bool skipnl = false;
     n = BPERLIN;
     while ((cc = fread (inbuf, sizeof(*inbuf), sizeof(inbuf), in)) > 0) {
        unsigned long bits;
@@ -69,7 +69,7 @@ writeBase64aux (FILE *in, FILE *out, int crlf)
                            inbuf[cc++] = '\n';
                        else
                            ungetc('\n', in);
-                       skipnl = 1;
+                       skipnl = true;
                    } else {
                        /* This only works as long as sizeof(inbuf) == 3 */
                        ungetc(inbuf[cc - 1], in);
@@ -78,7 +78,7 @@ writeBase64aux (FILE *in, FILE *out, int crlf)
                        inbuf[++i] = '\n';
                    }
                } else {
-                   skipnl = 0;
+                   skipnl = false;
                }
            }
        }
@@ -250,7 +250,6 @@ int
 decodeBase64 (const char *encoded, unsigned char **decoded, size_t *len,
              int skip_crs, unsigned char *digest) {
     const char *cp = encoded;
-    int self_delimiting = 0;
     int bitno, skip;
     uint32_t bits;
     /* Size the decoded string very conservatively. */
@@ -264,6 +263,7 @@ decodeBase64 (const char *encoded, unsigned char **decoded, size_t *len,
     bits = 0L;
     skip = 0;
 
+    bool self_delimiting = false;
     for (; *cp; ++cp) {
         switch (*cp) {
             unsigned char value;
@@ -318,18 +318,15 @@ test_end:
             case '=':
                 if (++skip <= 3)
                     goto test_end;
-                self_delimiting = 1;
+                self_delimiting = true;
                 break;
         }
     }
 
     if (! self_delimiting  &&  bitno != 18) {
-        int i;
-
         /* Show some context for the error. */
-        for (i = 0; i < 20  &&  cp > encoded; ++i, --cp) {}
-        inform("premature ending (bitno %d) near %s", bitno,
-                cp ? cp : encoded);
+        cp -= min(cp - encoded, 20);
+        inform("premature ending (bitno %d) near %s", bitno, cp);
         charstring_free (decoded_c);
         *decoded = NULL;