Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0:Staging:FactoryCandidates
paps
paps-header_features.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File paps-header_features.patch of Package paps
diff --git src/paps.1 src/paps.1 index 52c528f..d32b1cf 100644 --- src/paps.1 +++ src/paps.1 @@ -284,6 +284,16 @@ is not printed by default. Use \fItext\fR as the title string for page header. By default the input filename or "stdin" is used. .TP +.B \-\-header\-font=desc +Set the header font description. Default is Monospace Bold 12. +.TP +.B \-\-header\-date\-format=fmt +Set the header date format. Default is %c (see +.BR strftime (3)). +.TP +.B \-\-header\-rule\-thickness=val +Set the thickness of the header separation rule. Default is 0 (i.e. as thin as possible). +.TP .B \-\-markup Interpret input as pango markup. Pango Text Attribute Markup Language allows marking parts of the text with tags defining additional attributes such as font diff --git src/paps.c src/paps.c index d8105eb..3d99f11 100644 --- src/paps.c +++ src/paps.c @@ -58,6 +58,8 @@ #define DEFAULT_FONT_SIZE "12" #define HEADER_FONT_FAMILY "Monospace Bold" #define HEADER_FONT_SCALE "12" +#define HEADER_DATE_FORMAT "%c" +#define HEADER_RULE_THICKNESS 0.1 #define MAKE_FONT_NAME(f,s) f " " s /* @@ -129,6 +131,8 @@ typedef struct { PangoDirection pango_dir; const gchar *title; const gchar *header_font_desc; + const gchar *header_date_format; + gdouble header_rule_thickness; gdouble lpi; gdouble cpi; } page_layout_t; @@ -458,6 +462,9 @@ int main(int argc, char *argv[]) int gutter_width = 40; gboolean do_fatal_warnings = FALSE; const gchar *font = MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE); + const gchar *header_font_desc = MAKE_FONT_NAME (HEADER_FONT_FAMILY, HEADER_FONT_SCALE); + const gchar *header_date_format = HEADER_DATE_FORMAT; + gdouble header_rule_thickness = HEADER_RULE_THICKNESS; gchar *encoding = NULL; gchar *output = NULL; gchar *htitle = NULL; @@ -468,6 +475,12 @@ int main(int argc, char *argv[]) N_("Landscape output. (Default: portrait)"), NULL}, {"columns", 0, 0, G_OPTION_ARG_INT, &num_columns, N_("Number of columns output. (Default: 1)"), "NUM"}, + {"header-font", 0, 0, G_OPTION_ARG_STRING, &header_font_desc, + N_("Set the header font description. (Default: Monospace Bold 12)"), "DESC"}, + {"header-date-format", 0, 0, G_OPTION_ARG_STRING, &header_date_format, + N_("Set the header date format. (Default: %%c)"), "DESC"}, + {"header-rule-thickness", 0, 0, G_OPTION_ARG_DOUBLE, &header_rule_thickness, + N_("Set the thickness of the header separation rule. (Default: 0 (i.e. as thin as possible))"), "DESC"}, {"font", 0, 0, G_OPTION_ARG_STRING, &font, N_("Set font. (Default: Monospace 12)"), "DESC"}, {"output", 'o', 0, G_OPTION_ARG_STRING, &output, @@ -539,7 +552,6 @@ int main(int argc, char *argv[]) double page_height = paper_sizes[0].height; int do_tumble = -1; /* -1 means not initialized */ int do_duplex = -1; - const gchar *header_font_desc = MAKE_FONT_NAME (HEADER_FONT_FAMILY, HEADER_FONT_SCALE); const gchar *filename_in; gchar *text; int header_sep = 20; @@ -745,6 +757,8 @@ int main(int argc, char *argv[]) else page_layout.title = basename((char *)filename_in); page_layout.header_font_desc = header_font_desc; + page_layout.header_date_format = header_date_format; + page_layout.header_rule_thickness = header_rule_thickness; /* calculate x-coordinate scale */ if (page_layout.cpi > 0.0L) @@ -1400,7 +1414,7 @@ draw_line_to_page(cairo_t *cr, * Provide date string from current locale converted to UTF-8. */ char * -get_date(char *date, int maxlen) +get_date(page_layout_t *page_layout, char *date, int maxlen) { time_t t; GIConv cvh = NULL; @@ -1411,7 +1425,7 @@ get_date(char *date, int maxlen) if (date_utf8 == NULL) { t = time(NULL); - strftime(date, maxlen, "%c", localtime(&t)); + strftime(date, maxlen, page_layout->header_date_format, localtime(&t)); cvh = g_iconv_open("UTF-8", get_encoding()); if (cvh == (GIConv)-1) { @@ -1467,7 +1481,7 @@ draw_page_header_line_to_page(cairo_t *cr, page_layout->header_font_desc, page_layout->title, page_layout->header_font_desc, - get_date(date, 255)); + get_date(page_layout, date, 255)); else header = g_strdup_printf("<span font_desc=\"%s\">%s</span>\n" "<span font_desc=\"%s\">%s</span>\n" @@ -1475,7 +1489,7 @@ draw_page_header_line_to_page(cairo_t *cr, page_layout->header_font_desc, page_layout->title, page_layout->header_font_desc, - get_date(date, 255), + get_date(page_layout, date, 255), page_layout->header_font_desc, page); @@ -1537,7 +1551,7 @@ draw_page_header_line_to_page(cairo_t *cr, line_pos = page_layout->top_margin + page_layout->header_height + page_layout->header_sep / 2; cairo_move_to(cr, page_layout->left_margin, line_pos); cairo_line_to(cr,page_layout->page_width - page_layout->right_margin, line_pos); - cairo_set_line_width(cr,0.1); // TBD + cairo_set_line_width(cr, page_layout->header_rule_thickness); // TBD cairo_stroke(cr); return logical_rect.height;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor