patch 7.4.1705
Problem:    The 'guifont' option does not allow for a quality setting.
Solution:   Add the "q" item, supported on MS-Windows. (Yasuhiro Matsumoto)
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 0679ed2..543d5d5 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -3291,6 +3291,7 @@
     char	*p;
     char	*res;
     char	*charset_name;
+    char	*quality_name;
     char	*font_name = lf.lfFaceName;
 
     charset_name = charset_id2name((int)lf.lfCharSet);
@@ -3304,6 +3305,8 @@
 						(char_u **)&font_name, &len);
     }
 #endif
+    quality_name = quality_id2name((int)lf.lfQuality);
+
     res = (char *)alloc((unsigned)(strlen(font_name) + 20
 		    + (charset_name == NULL ? 0 : strlen(charset_name) + 2)));
     if (res != NULL)
@@ -3331,6 +3334,11 @@
 	    STRCAT(p, ":c");
 	    STRCAT(p, charset_name);
 	}
+	if (quality_name != NULL)
+	{
+	    STRCAT(p, ":q");
+	    STRCAT(p, quality_name);
+	}
     }
 
 #ifdef FEAT_MBYTE
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 607fd6a..77582cc 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -2689,6 +2689,33 @@
     {NULL,		0}
 };
 
+struct quality_pair
+{
+    char	*name;
+    DWORD	quality;
+};
+
+static struct quality_pair
+quality_pairs[] = {
+#ifdef CLEARTYPE_QUALITY
+    {"CLEARTYPE",	CLEARTYPE_QUALITY},
+#endif
+#ifdef ANTIALIASED_QUALITY
+    {"ANTIALIASED",	ANTIALIASED_QUALITY},
+#endif
+#ifdef NOANTIALIASED_QUALITY
+    {"NOANTIALIASED",	NOANTIALIASED_QUALITY},
+#endif
+#ifdef PROOF_QUALITY
+    {"PROOF",		PROOF_QUALITY},
+#endif
+#ifdef PROOF_QUALITY
+    {"DRAFT",		DRAFT_QUALITY},
+#endif
+    {"DEFAULT",		DEFAULT_QUALITY},
+    {NULL,		0}
+};
+
 /*
  * Convert a charset ID to a name.
  * Return NULL when not recognized.
@@ -2704,6 +2731,21 @@
     return cp->name;
 }
 
+/*
+ * Convert a quality ID to a name.
+ * Return NULL when not recognized.
+ */
+    char *
+quality_id2name(DWORD id)
+{
+    struct quality_pair *qp;
+
+    for (qp = quality_pairs; qp->name != NULL; ++qp)
+	if (id == qp->quality)
+	    break;
+    return qp->name;
+}
+
 static const LOGFONT s_lfDefault =
 {
     -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
@@ -2985,6 +3027,26 @@
 		    }
 		    break;
 		}
+	    case 'q':
+		{
+		    struct quality_pair *qp;
+
+		    for (qp = quality_pairs; qp->name != NULL; ++qp)
+			if (STRNCMP(p, qp->name, strlen(qp->name)) == 0)
+			{
+			    lf->lfQuality = qp->quality;
+			    p += strlen(qp->name);
+			    break;
+			}
+		    if (qp->name == NULL && verbose)
+		    {
+			vim_snprintf((char *)IObuff, IOSIZE,
+				_("E244: Illegal quality name \"%s\" in font name \"%s\""), p, name);
+			EMSG(IObuff);
+			break;
+		    }
+		    break;
+		}
 	    default:
 		if (verbose)
 		{
diff --git a/src/proto/os_mswin.pro b/src/proto/os_mswin.pro
index 333ba76..fb2da93 100644
--- a/src/proto/os_mswin.pro
+++ b/src/proto/os_mswin.pro
@@ -49,6 +49,7 @@
 char_u *serverGetReply(HWND server, int *expr_res, int remove, int wait);
 void serverProcessPendingMessages(void);
 char *charset_id2name(int id);
+char *quality_id2name __ARGS((DWORD id));
 int get_logfont(LOGFONT *lf, char_u *name, HDC printer_dc, int verbose);
 void channel_init_winsock(void);
 /* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index 58377a4..aefcfae 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1705,
+/**/
     1704,
 /**/
     1703,