Blob Blame History Raw
diff -ruN paps-0.6.6.orig/src/paps.1 paps-0.6.6/src/paps.1
--- paps-0.6.6.orig/src/paps.1	2006-06-20 04:09:58.000000000 +0900
+++ paps-0.6.6/src/paps.1	2006-06-20 04:12:23.000000000 +0900
@@ -34,11 +34,8 @@
 .B \-\-columns=cl
 Number of columns output. Default is 1.
 .TP
-.B \-\-font\-scale=fs
-Font scaling. Default is 12.
-.TP
-.B \-\-family=f
-Pango ft2 font family. Default is Monospace.
+.B \-\-font=desc
+Set the font description. Default is Monospace 12.
 .TP
 .B \-\-rtl
 Do rtl layout.
diff -ruN paps-0.6.6.orig/src/paps.c paps-0.6.6/src/paps.c
--- paps-0.6.6.orig/src/paps.c	2006-06-20 04:09:58.000000000 +0900
+++ paps-0.6.6/src/paps.c	2006-06-20 04:01:57.000000000 +0900
@@ -30,7 +30,11 @@
 #include <time.h>
 
 #define BUFSIZE 1024
-#define HEADER_FONT_SCALE 12
+#define DEFAULT_FONT_FAMILY	"Monospace"
+#define DEFAULT_FONT_SIZE	12
+#define HEADER_FONT_FAMILY	"Monospace Bold"
+#define HEADER_FONT_SCALE	12
+#define MAKE_FONT_NAME(f,s)	f " " #s
 
 typedef enum {
     PAPER_TYPE_A4 = 0,
@@ -187,15 +191,14 @@
 int main(int argc, char *argv[])
 {
   gboolean do_landscape = FALSE, do_rtl = FALSE, do_justify = FALSE, do_draw_header = FALSE;
-  int num_columns = 1, font_scale = 12;
+  int num_columns = 1;
   int top_margin = 36, bottom_margin = 36, right_margin = 36, left_margin = 36;
-  char *font_family = "Monospace", *encoding = NULL;
+  gchar *font = MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE), *encoding = NULL;
   GOptionContext *ctxt = g_option_context_new("[text file]");
   GOptionEntry entries[] = {
     {"landscape", 0, 0, G_OPTION_ARG_NONE, &do_landscape, "Landscape output. (Default: portrait)", NULL},
     {"columns", 0, 0, G_OPTION_ARG_INT, &num_columns, "Number of columns output. (Default: 1)", "NUM"},
-    {"font-scale", 0, 0, G_OPTION_ARG_INT, &font_scale, "Font scaling. (Default: 12)", "NUM"},
-    {"family", 0, 0, G_OPTION_ARG_STRING, &font_family, "Pango FT2 font family. (Default: Monospace)", "FAMILY"},
+    {"font", 0, 0, G_OPTION_ARG_STRING, &font, "Set the font description. (Default: Monospace 12)", "DESC"},
     {"rtl", 0, 0, G_OPTION_ARG_NONE, &do_rtl, "Do rtl layout.", NULL},
     {"justify", 0, 0, G_OPTION_ARG_NONE, &do_justify, "Do justify the lines.", NULL},
     {"paper", 0, 0, G_OPTION_ARG_CALLBACK, _paps_arg_paper_cb,
@@ -210,11 +213,8 @@
     {NULL}
   };
   GError *error = NULL;
-  char *filename_in;
-  char *title;
   FILE *IN, *OUT = NULL;
   page_layout_t page_layout;
-  char *text;
   GList *paragraphs;
   GList *pango_lines;
   PangoContext *pango_context;
@@ -228,7 +228,8 @@
   int do_tumble = -1;   /* -1 means not initialized */
   int do_duplex = -1;
   gchar *paps_header = NULL;
-  gchar *header_font_desc = "Monospace Bold 12";
+  gchar *header_font_desc = MAKE_FONT_NAME (HEADER_FONT_FAMILY, HEADER_FONT_SIZE);
+  gchar *filename_in, *title, *text;
   int header_sep = 20;
   GIConv *cvh = NULL;
 
@@ -271,13 +272,12 @@
   pango_context_set_language (pango_context, pango_language_from_string ("en_US"));
   pango_context_set_base_dir (pango_context, pango_dir);
   
-  font_description = pango_font_description_new ();
-  pango_font_description_set_family (font_description, g_strdup(font_family));
-  pango_font_description_set_style (font_description, PANGO_STYLE_NORMAL);
-  pango_font_description_set_variant (font_description, PANGO_VARIANT_NORMAL);
-  pango_font_description_set_weight (font_description, PANGO_WEIGHT_NORMAL);
-  pango_font_description_set_stretch (font_description, PANGO_STRETCH_NORMAL);
-  pango_font_description_set_size (font_description, font_scale * PANGO_SCALE);
+  /* create the font description */
+  font_description = pango_font_description_from_string (font);
+  if ((pango_font_description_get_set_fields (font_description) & PANGO_FONT_MASK_FAMILY) == 0)
+    pango_font_description_set_family (font_description, DEFAULT_FONT_FAMILY);
+  if ((pango_font_description_get_set_fields (font_description) & PANGO_FONT_MASK_SIZE) == 0)
+    pango_font_description_set_size (font_description, DEFAULT_FONT_SIZE * PANGO_SCALE);
 
   pango_context_set_font_description (pango_context, font_description);