Diff

Differences From Artifact [c011784a96]:

To Artifact [75e52b54b5]:


2618
2619
2620
2621
2622
2623
2624



2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641


















2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660



2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687




























2688
2689
2690
2691
2692
2693
2694
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627

















2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667



























2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702







+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+



















+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







    if (!inst->fonts[0]) {
	fprintf(stderr, "%s: unable to load font \"%s\"\n", appname,
		inst->cfg.font.name);
	exit(1);
    }
    font_charset = set_font_info(inst, 0);

    if (inst->cfg.shadowbold) {
	inst->fonts[1] = NULL;
    } else {
    if (inst->cfg.boldfont.name[0]) {
	name = inst->cfg.boldfont.name;
	guessed = FALSE;
    } else {
	name = guess_derived_font_name(inst->fonts[0], TRUE, FALSE);
	guessed = TRUE;
    }
    inst->fonts[1] = name ? gdk_font_load(name) : NULL;
    if (inst->fonts[1]) {
	set_font_info(inst, 1);
    } else if (!guessed) {
	fprintf(stderr, "%s: unable to load bold font \"%s\"\n", appname,
		inst->cfg.boldfont.name);
	exit(1);
    }
    if (guessed)
	sfree(name);
	if (inst->cfg.boldfont.name[0]) {
	    name = inst->cfg.boldfont.name;
	    guessed = FALSE;
	} else {
	    name = guess_derived_font_name(inst->fonts[0], TRUE, FALSE);
	    guessed = TRUE;
	}
	inst->fonts[1] = name ? gdk_font_load(name) : NULL;
	if (inst->fonts[1]) {
	    set_font_info(inst, 1);
	} else if (!guessed) {
	    fprintf(stderr, "%s: unable to load bold font \"%s\"\n", appname,
		    inst->cfg.boldfont.name);
	    exit(1);
	}
	if (guessed)
	    sfree(name);
    }

    if (inst->cfg.widefont.name[0]) {
	name = inst->cfg.widefont.name;
	guessed = FALSE;
    } else {
	name = guess_derived_font_name(inst->fonts[0], FALSE, TRUE);
	guessed = TRUE;
    }
    inst->fonts[2] = name ? gdk_font_load(name) : NULL;
    if (inst->fonts[2]) {
	set_font_info(inst, 2);
    } else if (!guessed) {
	fprintf(stderr, "%s: unable to load wide font \"%s\"\n", appname,
		inst->cfg.widefont.name);
	exit(1);
    }
    if (guessed)
	sfree(name);

    if (inst->cfg.shadowbold) {
	inst->fonts[3] = NULL;
    } else {
    if (inst->cfg.wideboldfont.name[0]) {
	name = inst->cfg.wideboldfont.name;
	guessed = FALSE;
    } else {
	/*
	 * Here we have some choices. We can widen the bold font,
	 * bolden the wide font, or widen and bolden the standard
	 * font. Try them all, in that order!
	 */
	if (inst->cfg.widefont.name[0])
	    name = guess_derived_font_name(inst->fonts[2], TRUE, FALSE);
	else if (inst->cfg.boldfont.name[0])
	    name = guess_derived_font_name(inst->fonts[1], FALSE, TRUE);
	else
	    name = guess_derived_font_name(inst->fonts[0], TRUE, TRUE);
	guessed = TRUE;
    }
    inst->fonts[3] = name ? gdk_font_load(name) : NULL;
    if (inst->fonts[3]) {
	set_font_info(inst, 3);
    } else if (!guessed) {
	fprintf(stderr, "%s: unable to load wide/bold font \"%s\"\n", appname,
		inst->cfg.wideboldfont.name);
	exit(1);
    }
    if (guessed)
	sfree(name);
	if (inst->cfg.wideboldfont.name[0]) {
	    name = inst->cfg.wideboldfont.name;
	    guessed = FALSE;
	} else {
	    /*
	     * Here we have some choices. We can widen the bold font,
	     * bolden the wide font, or widen and bolden the standard
	     * font. Try them all, in that order!
	     */
	    if (inst->cfg.widefont.name[0])
		name = guess_derived_font_name(inst->fonts[2], TRUE, FALSE);
	    else if (inst->cfg.boldfont.name[0])
		name = guess_derived_font_name(inst->fonts[1], FALSE, TRUE);
	    else
		name = guess_derived_font_name(inst->fonts[0], TRUE, TRUE);
	    guessed = TRUE;
	}
	inst->fonts[3] = name ? gdk_font_load(name) : NULL;
	if (inst->fonts[3]) {
	    set_font_info(inst, 3);
	} else if (!guessed) {
	    fprintf(stderr, "%s: unable to load wide/bold font \"%s\"\n", appname,
		    inst->cfg.wideboldfont.name);
	    exit(1);
	}
	if (guessed)
	    sfree(name);
    }

    inst->font_width = gdk_char_width(inst->fonts[0], ' ');
    inst->font_height = inst->fonts[0]->ascent + inst->fonts[0]->descent;

    inst->direct_to_font = init_ucs(&inst->ucsdata,
				    inst->cfg.line_codepage, font_charset,
				    inst->cfg.vtmode);
2837
2838
2839
2840
2841
2842
2843
2844


2845
2846
2847
2848
2849
2850
2851
2845
2846
2847
2848
2849
2850
2851

2852
2853
2854
2855
2856
2857
2858
2859
2860







-
+
+







         * necessary.
         */
        if (strcmp(oldcfg.font.name, cfg2.font.name) ||
            strcmp(oldcfg.boldfont.name, cfg2.boldfont.name) ||
            strcmp(oldcfg.widefont.name, cfg2.widefont.name) ||
            strcmp(oldcfg.wideboldfont.name, cfg2.wideboldfont.name) ||
            strcmp(oldcfg.line_codepage, cfg2.line_codepage) ||
	    oldcfg.vtmode != cfg2.vtmode) {
	    oldcfg.vtmode != cfg2.vtmode ||
	    oldcfg.shadowbold != cfg2.shadowbold) {
            setup_fonts_ucs(inst);
            need_size = 1;
        } else
            need_size = 0;

        /*
         * Resize the window.