Created
June 16, 2015 01:08
-
-
Save mattn/c9b429f98f3146364a94 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -r 7a8dcf699b22 runtime/doc/options.txt | |
--- a/runtime/doc/options.txt Tue Jun 09 21:33:31 2015 +0200 | |
+++ b/runtime/doc/options.txt Tue Jun 16 10:08:21 2015 +0900 | |
@@ -3557,6 +3557,10 @@ | |
HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, | |
SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC. | |
Normally you would use "cDEFAULT". | |
+ qXX - quality XX. Valid charsets are: PROOF, DRAFT, | |
+ ANTIALIASED, UNANTIALIASED, CLEARTYPE, DEFAULT. | |
+ Normally you would use "qDEFAULT". | |
+ Some quality values isn't supported in legacy OSs. | |
Use a ':' to separate the options. | |
- A '_' can be used in the place of a space, so you don't need to use | |
diff -r 7a8dcf699b22 src/gui_w48.c | |
--- a/src/gui_w48.c Tue Jun 09 21:33:31 2015 +0200 | |
+++ b/src/gui_w48.c Tue Jun 16 10:08:21 2015 +0900 | |
@@ -3090,7 +3090,7 @@ | |
{ | |
char *p; | |
char *res; | |
- char *charset_name; | |
+ char *charset_name, *quality_name; | |
char *font_name = lf.lfFaceName; | |
charset_name = charset_id2name((int)lf.lfCharSet); | |
@@ -3104,6 +3104,8 @@ | |
(char_u **)&font_name, &len); | |
} | |
#endif | |
+ quality_name = quality_id2name((int)lf.lfQuality); | |
+ | |
res = alloc((unsigned)(strlen(font_name) + 20 | |
+ (charset_name == NULL ? 0 : strlen(charset_name) + 2))); | |
if (res != NULL) | |
@@ -3133,6 +3135,11 @@ | |
STRCAT(p, ":c"); | |
STRCAT(p, charset_name); | |
} | |
+ if (quality_name != NULL) | |
+ { | |
+ STRCAT(p, ":q"); | |
+ STRCAT(p, quality_name); | |
+ } | |
} | |
#ifdef FEAT_MBYTE | |
diff -r 7a8dcf699b22 src/os_mswin.c | |
--- a/src/os_mswin.c Tue Jun 09 21:33:31 2015 +0200 | |
+++ b/src/os_mswin.c Tue Jun 16 10:08:21 2015 +0900 | |
@@ -2746,6 +2746,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. | |
@@ -2761,6 +2788,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, | |
@@ -3046,6 +3088,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 -r 7a8dcf699b22 src/proto/os_mswin.pro | |
--- a/src/proto/os_mswin.pro Tue Jun 09 21:33:31 2015 +0200 | |
+++ b/src/proto/os_mswin.pro Tue Jun 16 10:08:21 2015 +0900 | |
@@ -49,5 +49,6 @@ | |
char_u *serverGetReply __ARGS((HWND server, int *expr_res, int remove, int wait)); | |
void serverProcessPendingMessages __ARGS((void)); | |
char *charset_id2name __ARGS((int id)); | |
+char *quality_id2name __ARGS((DWORD id)); | |
int get_logfont __ARGS((LOGFONT *lf, char_u *name, HDC printer_dc, int verbose)); | |
/* vim: set ft=c : */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment