patch 8.1.1570: icon signs not displayed properly in the number column

Problem:    Icon signs not displayed properly in the number column.
Solution:   Display them properly. (Yegappan Lakshmanan, closes #4559)
diff --git a/src/gui.c b/src/gui.c
index a4673f0..5689182 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -2253,6 +2253,7 @@
     int		col = gui.col;
 #ifdef FEAT_SIGN_ICONS
     int		draw_sign = FALSE;
+    char_u	extra[18];
 # ifdef FEAT_NETBEANS_INTG
     int		multi_sign = FALSE;
 # endif
@@ -2275,10 +2276,17 @@
 	    multi_sign = TRUE;
 # endif
 	/* draw spaces instead */
-	s = (char_u *)"  ";
+	if (*curwin->w_p_scl == 'n' && *(curwin->w_p_scl + 1) == 'u' &&
+		(curwin->w_p_nu || curwin->w_p_rnu))
+	{
+	    sprintf((char *)extra, "%*c ", number_width(curwin), ' ');
+	    s = extra;
+	}
+	else
+	    s = (char_u *)"  ";
 	if (len == 1 && col > 0)
 	    --col;
-	len = 2;
+	len = (int)STRLEN(s);
 	draw_sign = TRUE;
 	highlight_mask = 0;
     }
diff --git a/src/screen.c b/src/screen.c
index 914bf37..05639c3 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3088,15 +3088,31 @@
 	if (gui.in_use && icon_sign != 0)
 	{
 	    // Use the image in this position.
-	    *c_extrap = SIGN_BYTE;
-	    *c_finalp = NUL;
+	    if (nrcol)
+	    {
+		*c_extrap = NUL;
+		sprintf((char *)extra, "%-*c ", number_width(wp), SIGN_BYTE);
+		*pp_extra = extra;
+		*n_extrap = (int)STRLEN(*pp_extra);
+	    }
+	    else
+		*c_extrap = SIGN_BYTE;
 #  ifdef FEAT_NETBEANS_INTG
 	    if (buf_signcount(wp->w_buffer, lnum) > 1)
 	    {
-		*c_extrap = MULTISIGN_BYTE;
-		*c_finalp = NUL;
+		if (nrcol)
+		{
+		    *c_extrap = NUL;
+		    sprintf((char *)extra, "%-*c ", number_width(wp),
+							MULTISIGN_BYTE);
+		    *pp_extra = extra;
+		    *n_extrap = (int)STRLEN(*pp_extra);
+		}
+		else
+		    *c_extrap = MULTISIGN_BYTE;
 	    }
 #  endif
+	    *c_finalp = NUL;
 	    *char_attrp = icon_sign;
 	}
 	else
@@ -3108,7 +3124,7 @@
 		{
 		    if (nrcol)
 		    {
-			sprintf((char *)extra, "%-*s ", number_width(wp),
+			sprintf((char *)extra, "%*s ", number_width(wp),
 								*pp_extra);
 			*pp_extra = extra;
 		    }
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index 1435e86..c979804 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -1776,7 +1776,7 @@
   " Enable number column. Check whether sign is displayed in the number column
   set number
   redraw!
-  call assert_equal("=>  01234", s:ScreenLine(1, 1, 9))
+  call assert_equal(" => 01234", s:ScreenLine(1, 1, 9))
 
   " Disable sign column. Make sure line number is displayed
   set signcolumn=no
diff --git a/src/version.c b/src/version.c
index 7e97f91..d71b86e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1570,
+/**/
     1569,
 /**/
     1568,