Mercurial > vim
comparison src/os_mswin.c @ 8835:c1a5623cfc86 v7.4.1705
commit https://github.com/vim/vim/commit/7c1c6dbb6817640fd3956a0d5417da23fde336d8
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Apr 3 22:08:05 2016 +0200
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 03 Apr 2016 22:15:05 +0200 |
parents | 2f57bbe870ea |
children | 87a6a0d65788 |
comparison
equal
deleted
inserted
replaced
8834:2617876e675a | 8835:c1a5623cfc86 |
---|---|
2687 # endif | 2687 # endif |
2688 #endif | 2688 #endif |
2689 {NULL, 0} | 2689 {NULL, 0} |
2690 }; | 2690 }; |
2691 | 2691 |
2692 struct quality_pair | |
2693 { | |
2694 char *name; | |
2695 DWORD quality; | |
2696 }; | |
2697 | |
2698 static struct quality_pair | |
2699 quality_pairs[] = { | |
2700 #ifdef CLEARTYPE_QUALITY | |
2701 {"CLEARTYPE", CLEARTYPE_QUALITY}, | |
2702 #endif | |
2703 #ifdef ANTIALIASED_QUALITY | |
2704 {"ANTIALIASED", ANTIALIASED_QUALITY}, | |
2705 #endif | |
2706 #ifdef NOANTIALIASED_QUALITY | |
2707 {"NOANTIALIASED", NOANTIALIASED_QUALITY}, | |
2708 #endif | |
2709 #ifdef PROOF_QUALITY | |
2710 {"PROOF", PROOF_QUALITY}, | |
2711 #endif | |
2712 #ifdef PROOF_QUALITY | |
2713 {"DRAFT", DRAFT_QUALITY}, | |
2714 #endif | |
2715 {"DEFAULT", DEFAULT_QUALITY}, | |
2716 {NULL, 0} | |
2717 }; | |
2718 | |
2692 /* | 2719 /* |
2693 * Convert a charset ID to a name. | 2720 * Convert a charset ID to a name. |
2694 * Return NULL when not recognized. | 2721 * Return NULL when not recognized. |
2695 */ | 2722 */ |
2696 char * | 2723 char * |
2700 | 2727 |
2701 for (cp = charset_pairs; cp->name != NULL; ++cp) | 2728 for (cp = charset_pairs; cp->name != NULL; ++cp) |
2702 if ((BYTE)id == cp->charset) | 2729 if ((BYTE)id == cp->charset) |
2703 break; | 2730 break; |
2704 return cp->name; | 2731 return cp->name; |
2732 } | |
2733 | |
2734 /* | |
2735 * Convert a quality ID to a name. | |
2736 * Return NULL when not recognized. | |
2737 */ | |
2738 char * | |
2739 quality_id2name(DWORD id) | |
2740 { | |
2741 struct quality_pair *qp; | |
2742 | |
2743 for (qp = quality_pairs; qp->name != NULL; ++qp) | |
2744 if (id == qp->quality) | |
2745 break; | |
2746 return qp->name; | |
2705 } | 2747 } |
2706 | 2748 |
2707 static const LOGFONT s_lfDefault = | 2749 static const LOGFONT s_lfDefault = |
2708 { | 2750 { |
2709 -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, | 2751 -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, |
2983 EMSG(IObuff); | 3025 EMSG(IObuff); |
2984 break; | 3026 break; |
2985 } | 3027 } |
2986 break; | 3028 break; |
2987 } | 3029 } |
3030 case 'q': | |
3031 { | |
3032 struct quality_pair *qp; | |
3033 | |
3034 for (qp = quality_pairs; qp->name != NULL; ++qp) | |
3035 if (STRNCMP(p, qp->name, strlen(qp->name)) == 0) | |
3036 { | |
3037 lf->lfQuality = qp->quality; | |
3038 p += strlen(qp->name); | |
3039 break; | |
3040 } | |
3041 if (qp->name == NULL && verbose) | |
3042 { | |
3043 vim_snprintf((char *)IObuff, IOSIZE, | |
3044 _("E244: Illegal quality name \"%s\" in font name \"%s\""), p, name); | |
3045 EMSG(IObuff); | |
3046 break; | |
3047 } | |
3048 break; | |
3049 } | |
2988 default: | 3050 default: |
2989 if (verbose) | 3051 if (verbose) |
2990 { | 3052 { |
2991 vim_snprintf((char *)IObuff, IOSIZE, | 3053 vim_snprintf((char *)IObuff, IOSIZE, |
2992 _("E245: Illegal char '%c' in font name \"%s\""), | 3054 _("E245: Illegal char '%c' in font name \"%s\""), |