@@ -2689,6 +2689,33 @@ charset_pairs[] =
26892689 {NULL , 0 }
26902690};
26912691
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+
26922719/*
26932720 * Convert a charset ID to a name.
26942721 * Return NULL when not recognized.
@@ -2704,6 +2731,21 @@ charset_id2name(int id)
27042731 return cp -> name ;
27052732}
27062733
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 ;
2747+ }
2748+
27072749static const LOGFONT s_lfDefault =
27082750{
27092751 -12 , 0 , 0 , 0 , FW_NORMAL , FALSE, FALSE, FALSE, DEFAULT_CHARSET ,
@@ -2985,6 +3027,26 @@ get_logfont(
29853027 }
29863028 break ;
29873029 }
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+ }
29883050 default :
29893051 if (verbose )
29903052 {
0 commit comments