X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_graph.c;h=4b9cb6c9a27a764bb08b950f273cca1a794dbaf1;hp=66e6502448cdc3b52b231bda2f6ea588d3e6358d;hb=d8c5e46b26d3870f3d52c7e8ad5eb2adf534503d;hpb=d13a11d9abb791a0755bddb8a74ed36be59a82ad diff --git a/src/rrd_graph.c b/src/rrd_graph.c index 66e6502..4b9cb6c 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -2850,7 +2850,7 @@ rrd_graph_options(int argc, char *argv[],image_desc_t *im) {0,0,0,0}}; int option_index = 0; int opt; - + int col_start,col_end; opt = getopt_long(argc, argv, "s:e:x:y:v:w:h:iu:l:rb:oc:n:m:t:f:a:I:zgjFYAMX:S:NT:", @@ -3021,13 +3021,25 @@ rrd_graph_options(int argc, char *argv[],image_desc_t *im) break; case 'c': if(sscanf(optarg, - "%10[A-Z]#%8lx", - col_nam,&color) == 2){ + "%10[A-Z]#%n%8lx%n", + col_nam,&col_start,&color,&col_end) == 2){ int ci; + int col_len = col_end - col_start; + switch (col_len){ + case 6: + color = (color << 8) + 0xff /* shift left by 8 */; + break; + case 8: + break; + default: + rrd_set_error("the color format is #RRGGBB[AA]"); + return; + } if((ci=grc_conv(col_nam)) != -1){ im->graph_col[ci]=color; } else { rrd_set_error("invalid color name '%s'",col_nam); + return; } } else { rrd_set_error("invalid color def format");