]> granicus.if.org Git - neomutt/commitdiff
replace the ugly strfcpy() macro with a function
authorDarshit Shah <darnir@gmail.com>
Fri, 14 Oct 2016 22:59:42 +0000 (23:59 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 15 Oct 2016 11:30:04 +0000 (12:30 +0100)
lib.c
lib.h

diff --git a/lib.c b/lib.c
index 28c2937cf437877ebceab68c83c98efc03e5b9e3..ad0dfbace3c2c8986f73d5bc9f80e578bb5e4dce 100644 (file)
--- a/lib.c
+++ b/lib.c
@@ -1112,3 +1112,13 @@ int mutt_same_path (const char *a, const char *b)
   return ((a_len == (b_end - b)) && (mutt_strncasecmp (a, b, a_len) == 0));
 }
 
+char * strfcpy (char *dest, const char *src, size_t dlen)
+{
+  char *dest0 = dest;
+  while ((--dlen > 0) && (*src != '\0'))
+    *dest++ = *src++;
+
+  *dest = '\0';
+  return dest0;
+}
+
diff --git a/lib.h b/lib.h
index 120a0f0b3384a876a52dd19d07194cd5625e8f08..2bae30e21784a97cc9691324f7e90f769dba431a 100644 (file)
--- a/lib.h
+++ b/lib.h
@@ -77,7 +77,6 @@
 # define FREE(x) safe_free(x)
 # define NONULL(x) x?x:""
 # define ISSPACE(c) isspace((unsigned char)c)
-# define strfcpy(DST,SRC,LEN) do { if ((LEN) > 0) { *(DST+(LEN)-1)=0; strncpy(DST,SRC,(LEN)-1); } } while (0)
 
 # undef MAX
 # undef MIN
@@ -177,6 +176,7 @@ char *mutt_substrdup (const char *, const char *);
 char *safe_strcat (char *, size_t, const char *);
 char *safe_strncat (char *, size_t, const char *, size_t);
 char *safe_strdup (const char *);
+char *strfcpy (char *dest, const char *src, size_t dlen);
 
 /* strtol() wrappers with range checking; they return
  *      0 success