[Openvas-commits] r5804 - in trunk/openvas-manager: . src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Nov 6 08:45:36 CET 2009
Author: felix
Date: 2009-11-06 08:45:35 +0100 (Fri, 06 Nov 2009)
New Revision: 5804
Modified:
trunk/openvas-manager/ChangeLog
trunk/openvas-manager/src/omp.c
Log:
* src/omp.c (latex_print_text): New, extracted from latex_escape_text.
Writes to file directly (bufferless) in contrast to memory.
(latex_escape_text): Added todo, function might be obsolete.
(print_report_latex): Use (new) latex_print_text.
Modified: trunk/openvas-manager/ChangeLog
===================================================================
--- trunk/openvas-manager/ChangeLog 2009-11-06 07:22:42 UTC (rev 5803)
+++ trunk/openvas-manager/ChangeLog 2009-11-06 07:45:35 UTC (rev 5804)
@@ -1,3 +1,10 @@
+2009-11-06 Felix Wolfsteller <felix.wolfsteller at intevation.de>
+
+ * src/omp.c (latex_print_text): New, extracted from latex_escape_text.
+ Writes to file directly (bufferless) in contrast to memory.
+ (latex_escape_text): Added todo, function might be obsolete.
+ (print_report_latex): Use (new) latex_print_text.
+
2009-11-05 Matthew Mundell <matthew.mundell at intevation.de>
* src/omp.c (init_result_iterator): Include all levels if levels is NULL.
@@ -33,8 +40,7 @@
(omp_xml_handle_end_element): For the XML report, include the filtering
and sorting info in the response, add a port summary section. Pass
sorting and filtering attributes to init_result_iterator.
-
-omp_xml_handle_end_element): In CLIENT_GET_CONFIGS send OID
+ (omp_xml_handle_end_element): In CLIENT_GET_CONFIGS send OID
with NVT in PREFERENCE.
2009-11-04 Felix Wolfsteller <felix.wolfsteller at intevation.de>
Modified: trunk/openvas-manager/src/omp.c
===================================================================
--- trunk/openvas-manager/src/omp.c 2009-11-06 07:22:42 UTC (rev 5803)
+++ trunk/openvas-manager/src/omp.c 2009-11-06 07:45:35 UTC (rev 5804)
@@ -2119,6 +2119,8 @@
* Replace LaTeX special characters with LaTeX equivalents.
*
* @return A newly allocated version of text.
+ *
+ * @todo Evaluate whether there will be use for this function.
*/
static gchar*
latex_escape_text (const char *text)
@@ -2196,6 +2198,81 @@
}
/**
+ * @brief Writes \ref text to \ref file, escaping characters on the fly.
+ *
+ * @param[in] file File descriptor to write to.
+ * @param[out] text Text to write to file, while escaping 'special'
+ * characters.
+ */
+static void
+latex_print_text (FILE* file, const char* text)
+{
+ const char* pos = text;
+ while (*pos)
+ {
+ switch (*pos)
+ {
+ case '\\':
+ // Look ahead
+ ++pos;
+ // Skip "\r"
+ if (*pos && *pos == 'r')
+ break; /* skip */
+ // Replace "\n" by '\n''\n'
+ else if (*pos && *pos == 'n')
+ {
+ fputc ('\n', file);
+ fputc ('\n', file);
+ break;
+ }
+ --pos;
+ // No escaped special char.
+ fputs ("$\\backslash$", file);
+ break;
+ /** @todo following cases simply place a backslash ('\') in front of
+ * the character to be escaped. simplification possible?
+ * case '%':
+ * //...
+ * case '$':
+ * fputc ('&', file);
+ * fputc (*pos, file);
+ * break;
+ * default: //...
+ */
+ case '#':
+ fputs ("\\#", file);
+ break;
+ case '$':
+ fputs ("\\$", file);
+ break;
+ case '%':
+ fputs ("\\%", file);
+ break;
+ case '&':
+ fputs ("\\&", file);
+ break;
+ case '{':
+ fputs ("\\{", file);
+ break;
+ case '}':
+ fputs ("\\}", file);
+ break;
+ case '_':
+ fputs ("\\_", file);
+ break;
+ case '^':
+ fputs ("\\^", file);
+ break;
+ default:
+ fputc (*pos, file);
+ break;
+ }
+ ++pos;
+ }
+}
+
+
+/**
* @brief Convert \n's to real newline's.
*
* @return A newly allocated version of text.
@@ -2544,11 +2621,8 @@
// FIX severity ordering is alphabetical on severity name
while (next (&results))
{
- gchar *descr;
const char *severity;
- descr = latex_escape_text (result_iterator_descr (&results));
-
if (last_port == NULL
|| strcmp (last_port, result_iterator_port (&results)))
{
@@ -2580,8 +2654,12 @@
fprintf (out,
"\\hline\n"
"\\rowcolor%s%s\\\\\n"
- "\\hline\n"
- "%s\\\\\n"
+ "\\hline\n",
+ latex_severity_colour (severity),
+ latex_severity_heading (severity));
+ latex_print_text (out, result_iterator_descr (&results));
+ fprintf (out,
+ "\\\\\n"
"OID of test routine: %s\\\\\n"
"\\hline\n"
"\\end{tabularx}\n"
@@ -2589,12 +2667,8 @@
"\n"
"\\begin{tabular}{l}\n"
"\\begin{tabularx}{\\textwidth * 1}{|X|}\n",
- latex_severity_colour (severity),
- latex_severity_heading (severity),
- descr,
result_iterator_nvt (&results));
- g_free (descr);
}
if (last_port)
{
More information about the Openvas-commits
mailing list