some simplifications.
authorPierre Habouzit <madcoder@debian.org>
Thu, 30 Nov 2006 08:03:39 +0000 (09:03 +0100)
committerPierre Habouzit <madcoder@debian.org>
Thu, 30 Nov 2006 08:03:39 +0000 (09:03 +0100)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
lib-lib/str.h
lib-mime/rfc822address.c
pattern.c

index a5791c3..25abac8 100644 (file)
@@ -128,6 +128,14 @@ static inline char *m_strreplace(char **p, const char *s) {
     return (*p = m_strdup(s));
 }
 
+static inline ssize_t m_strputc(char *dst, ssize_t n, int c) {
+    if (n > 1) {
+        dst[0] = c;
+        dst[1] = '\0';
+    }
+    return 1;
+}
+
 ssize_t m_strcpy(char *dst, ssize_t n, const char *src);
 ssize_t m_strncpy(char *dst, ssize_t n, const char *src, ssize_t l);
 
index 36485d3..a6a06c4 100644 (file)
@@ -410,14 +410,14 @@ ssize_t rfc822_write_address_single(char *buf, ssize_t buflen,
         }
 
         if (addr->personal) {
-            pos += m_strcpy(buf + pos, buflen - pos, ">");
+            pos += m_strputc(buf + pos, buflen - pos, '>');
         }
 
         if (addr->group) {
-            pos += m_strcpy(buf + pos, buflen - pos, ":");
+            pos += m_strputc(buf + pos, buflen - pos, ':');
         }
     } else {
-        pos += m_strcpy(buf + pos, buflen - pos, ";");
+        pos += m_strputc(buf + pos, buflen - pos, ';');
     }
 
     return pos;
index ea72544..594beda 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -631,20 +631,16 @@ static const struct pattern_flags *lookup_tag (char tag)
   return NULL;
 }
 
-static /* const */ char *find_matching_paren ( /* const */ char *s)
+static const char *find_matching_paren (const char *s)
 {
-  int level = 1;
-
-  for (; *s; s++) {
-    if (*s == '(')
-      level++;
-    else if (*s == ')') {
-      level--;
-      if (!level)
-        break;
+    int level = 1;
+
+    for (; *s; s++) {
+        level += (*s == '(') - (*s == ')');
+        if (!level)
+            break;
     }
-  }
-  return s;
+    return s;
 }
 
 pattern_t *mutt_pattern_comp(const char *s, int flags, BUFFER *err)