mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
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)
This commit is contained in:
@@ -2689,6 +2689,33 @@ charset_pairs[] =
|
||||
{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 @@ charset_id2name(int id)
|
||||
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 @@ get_logfont(
|
||||
}
|
||||
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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user