index 708c2232569b57850c6c60c1d536315cbcfcb924..f79a9f2f719ab2954246d0de64755453bc9ffd4d 100644 (file)
const char *const,
unsigned int *const,
graph_desc_t *const);
+
int rrd_parse_legend(
const char *const,
unsigned int *const,
graph_desc_t *const);
+
int rrd_parse_color(
const char *const,
graph_desc_t *const);
+
+int rrd_parse_textalign(
+ const char *const,
+ unsigned int *const,
+ graph_desc_t *const);
+
+
int rrd_parse_CF(
const char *const,
unsigned int *const,
graph_desc_t *const,
enum cf_en *const);
+
int rrd_parse_print(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_shift(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_xport(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_PVHLAST(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_make_vname(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_find_vname(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_def(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_vdef(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
+
int rrd_parse_cdef(
const char *const,
unsigned int *const,
graph_desc_t *const,
image_desc_t *const);
-
-
int rrd_parse_find_gf(
const char *const line,
unsigned int *const eaten,
return 1;
}
} else {
+ long time_tmp = 0;
rrd_clear_error();
i = 0;
- sscanf(&line[*eaten], "%li%n", &gdp->shval, &i);
+ sscanf(&line[*eaten], "%li%n", &time_tmp, &i);
+ gdp->shval = time_tmp;
if (i != (int) strlen(&line[*eaten])) {
rrd_set_error("Not a valid offset: %s in line %s", &line[*eaten],
line);
return 0;
}
+int rrd_parse_textalign(
+ const char *const line,
+ unsigned int *const eaten,
+ graph_desc_t *const gdp)
+{
+ if (strcmp(&line[*eaten], "left") == 0) {
+ gdp->txtalign = TXA_LEFT;
+ } else if (strcmp(&line[*eaten], "right") == 0) {
+ gdp->txtalign = TXA_RIGHT;
+ } else if (strcmp(&line[*eaten], "justified") == 0) {
+ gdp->txtalign = TXA_JUSTIFIED;
+ } else if (strcmp(&line[*eaten], "center") == 0) {
+ gdp->txtalign = TXA_CENTER;
+ } else {
+ rrd_set_error("Unknown alignement type '%s'", &line[*eaten]);
+ return 1;
+ }
+ *eaten += strlen(&line[*eaten]);
+ return 0;
+}
+
+
/* Parsing of PART, VRULE, HRULE, LINE, AREA, STACK and TICK
** is done in one function.
**
default:;
}
} else {
+ long time_tmp = 0;
dprintf("- it is not an existing vname\n");
switch (gdp->gf) {
case GF_VRULE:
k = 0;
- sscanf(tmpstr, "%li%n", &gdp->xrule, &k);
+ sscanf(tmpstr, "%li%n",&time_tmp , &k);
+ gdp->xrule = time_tmp;
if (((j != 0) && (k == j)) || ((j == 0) && (k == i))) {
dprintf("- found time: %li\n", gdp->xrule);
} else {
k = 0;
sscanf(tmpstr, "%lf%n", &gdp->yrule, &k);
if (((j != 0) && (k == j)) || ((j == 0) && (k == i))) {
- dprintf("- found number: %f\n", gdp->yrule);
+ dprintf("- found number: %lf\n", gdp->yrule);
} else {
- dprintf("- is is not a valid number: %li\n", gdp->xrule);
+ dprintf("- is is not a valid number: %lf\n", gdp->yrule);
rrd_set_error
("parameter '%s' does not represent a number in line %s\n",
tmpstr, line);
/* PART, HRULE, VRULE and TICK cannot be stacked. */
if ((gdp->gf == GF_HRULE)
|| (gdp->gf == GF_VRULE)
-#ifdef WITH_PIECHART
- || (gdp->gf == GF_PART)
-#endif
|| (gdp->gf == GF_TICK)
)
return 0;
j = scan_for_col(&line[*eaten], 5, tmpstr);
if (line[*eaten + j] != '\0' && line[*eaten + j] != ':') {
/* not 5 chars */
- rrd_set_error("Garbage found where STACK expected");
+ rrd_set_error("STACK expected and not found");
return 1;
}
if (!strcmp("STACK", tmpstr)) {
gdp->stack = 1;
(*eaten) += j;
} else {
- rrd_set_error("Garbage found where STACK expected");
+ rrd_set_error("STACK expected and not found");
return 1;
}
}
if (rrd_parse_shift(argv[i], &eaten, gdp, im))
return;
break;
+ case GF_TEXTALIGN: /* left|right|center|justified */
+ if (rrd_parse_textalign(argv[i], &eaten, gdp))
+ return;
+ break;
case GF_XPORT:
if (rrd_parse_xport(argv[i], &eaten, gdp, im))
return;
if (rrd_parse_legend(argv[i], &eaten, gdp))
return;
break;
-#ifdef WITH_PIECHART
- case GF_PART: /* value[#color[:legend]] */
-#endif
case GF_VRULE: /* value#color[:legend] */
case GF_HRULE: /* value#color[:legend] */
case GF_LINE: /* vname-or-value[#color[:legend]][:STACK] */
dprintf("Command finished successfully\n");
}
if (eaten < strlen(argv[i])) {
- rrd_set_error("Garbage '%s' after command:\n%s",
+ rrd_set_error("I don't understand '%s' in command: '%s'.",
&argv[i][eaten], argv[i]);
return;
}