paps/paps-0.6.6-font-option.patch

95 lines
4.0 KiB
Diff

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);