These settings are specified by

  document.colors.link_number
  document.colors.use_link_number_color

The latter setting determines whether the color is used when document
colors are being used.

See bug #1050.
---
 src/config/options.inc       |    9 +++++++++
 src/document/html/parser.c   |    1 +
 src/document/html/parser.h   |    1 +
 src/document/html/renderer.c |    6 ++++++
 src/document/options.c       |    2 ++
 src/document/options.h       |    3 +++
 6 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/config/options.inc b/src/config/options.inc
index f957669..323e987 100644
--- a/src/config/options.inc
+++ b/src/config/options.inc
@@ -606,6 +606,15 @@ static struct option_info config_options_info[] = {
                "\n"
                "See document.browse.links.color_dirs option.")),
 
+       INIT_OPT_BOOL("document.colors", N_("Use link number color"),
+               "use_link_number_color", 0, 0,
+               N_("Whether to use link number color even when colors "
+               "specified by the document are used.")),
+
+       INIT_OPT_COLOR("document.colors", N_("Link number color"),
+               "link_number", 0, "#0000ff",
+               N_("Default link number color.")),
+
        /* Compatibility alias: added by jonas at 2005-05-31, 0.11.CVS. */
        INIT_OPT_ALIAS("document.colors", "allow_dark_on_black", 
OPT_ALIAS_NEGATE,
                "document.colors.increase_contrast"),
diff --git a/src/document/html/parser.c b/src/document/html/parser.c
index 7ebc582..65e54dd 100644
--- a/src/document/html/parser.c
+++ b/src/document/html/parser.c
@@ -923,6 +923,7 @@ init_html_parser(struct uri *uri, struct document_options 
*options,
        format.color.bookmark_link = options->default_color.bookmark_link;
 #endif
        format.color.image_link = options->default_color.image_link;
+       format.color.link_number = options->default_color.link_number;
 
        par_format.align = ALIGN_LEFT;
        par_format.leftmargin = options->margin;
diff --git a/src/document/html/parser.h b/src/document/html/parser.h
index 8f99bef..7e61619 100644
--- a/src/document/html/parser.h
+++ b/src/document/html/parser.h
@@ -30,6 +30,7 @@ struct text_attrib_color {
        color_T bookmark_link;
 #endif
        color_T image_link;
+       color_T link_number;
 };
 
 struct text_attrib {
diff --git a/src/document/html/renderer.c b/src/document/html/renderer.c
index bfbd9c7..ecbf534 100644
--- a/src/document/html/renderer.c
+++ b/src/document/html/renderer.c
@@ -1507,11 +1507,16 @@ put_link_number(struct html_context *html_context)
        unsigned char *fl = format.link;
        unsigned char *ft = format.target;
        unsigned char *fi = format.image;
+       struct text_style old_style = format.style;
        struct form_control *ff = format.form;
        int slen = 0;
 
        format.link = format.target = format.image = NULL;
        format.form = NULL;
+       if (html_context->options->use_link_number_color) {
+               format.style.attr &= ~AT_BOLD;
+               format.style.color.foreground = format.color.link_number;
+       }
 
        s[slen++] = '[';
        ulongcat(s, &slen, part->link_num, sizeof(s) - 3, 0);
@@ -1532,6 +1537,7 @@ put_link_number(struct html_context *html_context)
        format.target = ft;
        format.image = fi;
        format.form = ff;
+       format.style = old_style;
 }
 
 #define assert_link_variable(old, new) \
diff --git a/src/document/options.c b/src/document/options.c
index f00a515..dabacb2 100644
--- a/src/document/options.c
+++ b/src/document/options.c
@@ -45,6 +45,8 @@ init_document_options(struct session *ses, struct 
document_options *doo)
        doo->default_color.bookmark_link = 
get_opt_color("document.colors.bookmark", ses);
 #endif
        doo->default_color.image_link = get_opt_color("document.colors.image", 
ses);
+       doo->default_color.link_number = 
get_opt_color("document.colors.link_number", ses);
+       doo->use_link_number_color = doo->use_document_colors == 0 || 
get_opt_bool("document.colors.use_link_number_color", ses);
 
        doo->active_link.color.foreground = 
get_opt_color("document.browse.links.active_link.colors.text", ses);
        doo->active_link.color.background = 
get_opt_color("document.browse.links.active_link.colors.background", ses);
diff --git a/src/document/options.h b/src/document/options.h
index 9fc2baf..33a7570 100644
--- a/src/document/options.h
+++ b/src/document/options.h
@@ -32,6 +32,7 @@ struct document_options_colors {
        color_T bookmark_link;
 #endif
        color_T image_link;
+       color_T link_number;
 };
 
 struct document_options_image_link {
@@ -62,6 +63,8 @@ struct document_options {
        struct document_options_colors default_color;
        /** @} */
 
+       unsigned int use_link_number_color:1;
+
        /** Color model/optimizations */
        enum color_flags color_flags;
 
-- 
1.6.3

_______________________________________________
elinks-dev mailing list
elinks-dev@linuxfromscratch.org
http://linuxfromscratch.org/mailman/listinfo/elinks-dev

Reply via email to