patch 9.1.0448: compiler warning in eval.c

Problem:  compiler warning in eval.c (after v9.1.0429)
Solution: refactor code (Yegappan Lakshmanan)

fixes: #14847
closes: #14867

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/eval.c b/src/eval.c
index 8583610..b08f296 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -5761,22 +5761,31 @@
 
     if (echo_style)
     {
-	r = tv->vval.v_string == NULL ? (char_u *)"function()"
-				: make_ufunc_name_readable(tv->vval.v_string,
-						buf, MAX_FUNC_NAME_LEN);
-	if (r == buf && tv->vval.v_string != NULL)
+	if (tv->vval.v_string == NULL)
 	{
-	    r = vim_strsave(buf);
-	    *tofree = r;
+	    r = (char_u *)"function()";
+	    *tofree = NULL;
 	}
 	else
-	    *tofree = NULL;
+	{
+	    r = make_ufunc_name_readable(tv->vval.v_string, buf,
+							MAX_FUNC_NAME_LEN);
+	    if (r == buf)
+	    {
+		r = vim_strsave(buf);
+		*tofree = r;
+	    }
+	    else
+		*tofree = NULL;
+	}
     }
     else
     {
-	*tofree = string_quote(tv->vval.v_string == NULL ? NULL
-				: make_ufunc_name_readable(tv->vval.v_string,
-					buf, MAX_FUNC_NAME_LEN), TRUE);
+	if (tv->vval.v_string == NULL)
+	    *tofree = string_quote(NULL, TRUE);
+	else
+	    *tofree = string_quote(make_ufunc_name_readable(tv->vval.v_string,
+						buf, MAX_FUNC_NAME_LEN), TRUE);
 	r = *tofree;
     }