From 5ee4f168676fe93ef417f447526c77ace38fe7b1 Mon Sep 17 00:00:00 2001 From: handa Date: Fri, 2 Dec 2005 04:44:47 +0000 Subject: [PATCH] (main): Handle --font arg. --- example/medit.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/example/medit.c b/example/medit.c index 8416756..619ddf5 100644 --- a/example/medit.c +++ b/example/medit.c @@ -2585,6 +2585,7 @@ main (int argc, char **argv) { Widget form, BodyWidget, w; char *fontset_name = NULL; + char *font_name = NULL; int fontsize = 0; char *initial_input_method = NULL; int col = 80, row = 32; @@ -2616,6 +2617,7 @@ main (int argc, char **argv) int with_xim = 0; int i, j; char *filter = NULL; + MFont *font = NULL; setlocale (LC_ALL, ""); /* Create the top shell. */ @@ -2655,6 +2657,11 @@ main (int argc, char **argv) i++; fontset_name = strdup (argv[i]); } + else if (! strcmp (argv[i], "--font")) + { + i++; + font_name = strdup (argv[i]); + } else if (! strcmp (argv[i], "--im")) { i++; @@ -2748,6 +2755,22 @@ main (int argc, char **argv) default_font_size = (int) mfont_get_prop (font, Msize); } + if (font_name) + { + font = mfont_parse_name (font_name, Mnil); + if (font) + { + int score; + MFont *obj; + + if (fontsize > 0 && ! mfont_get_prop (font, Msize)) + mfont_put_prop (font, Msize, (void *) fontsize); + obj = mfont_find (frame, font, &score, 0); + if (obj) + mtext_put_prop (mt, 0, mtext_len (mt), Mfont, obj); + } + } + font_width = (int) mframe_get_prop (frame, Mfont_width); font_ascent = (int) mframe_get_prop (frame, Mfont_ascent); font_descent = (int) mframe_get_prop (frame, Mfont_descent); @@ -3183,6 +3206,8 @@ main (int argc, char **argv) m17n_object_unref (face_default); m17n_object_unref (default_face_list); m17n_object_unref (selection); + if (font) + free (font); XFreeGC (display, mono_gc); XFreeGC (display, mono_gc_inv); @@ -3194,6 +3219,7 @@ main (int argc, char **argv) M17N_FINI (); + free (font_name); free (fontset_name); free (filename); free (input_method_table); -- 1.7.10.4