aboutsummaryrefslogtreecommitdiff
path: root/src/report.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-02-22 12:29:58 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-02-22 12:29:58 +0200
commite7860f6f4b7da3e45eee6d2100dfb42823d8106f (patch)
treea9dca4490c567054391579b627ae5db14995f5dd /src/report.c
parent0b63c31eadfe5d4e94c7014bd0f3bd4370783d19 (diff)
downloadwydawca-e7860f6f4b7da3e45eee6d2100dfb42823d8106f.tar.gz
wydawca-e7860f6f4b7da3e45eee6d2100dfb42823d8106f.tar.bz2
Minor improvements
* src/report.c: New file * src/Makefile.am (wydawca_SOURCES): Add report.c * src/cmdline.opt: Group options. New option -D (--define). * src/directive.c (process_directives): Call report_init before processing and report_finish afterwards. * src/triplet.c: New meta-variable `report'. * src/vtab.c (move_file, archive_file, symlink_file, rmsymlink_file): Update report stack. * src/wydawca.h: Include obstack.h (report_init, report_add, report_finish): New protos. (report_string): New declaration. * src/builtin.c, src/meta.c: Remove obstack inclusion.
Diffstat (limited to 'src/report.c')
-rw-r--r--src/report.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/report.c b/src/report.c
new file mode 100644
index 0000000..fe38fe9
--- /dev/null
+++ b/src/report.c
@@ -0,0 +1,52 @@
+/* wydawca - automatic release submission daemon
+ Copyright (C) 2009 Sergey Poznyakoff
+
+ Wydawca is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ Wydawca is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with wydawca. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "wydawca.h"
+
+static struct obstack report_stk;
+static int report_stk_inited;
+char *report_string;
+
+void
+report_init ()
+{
+ if (!report_stk_inited)
+ obstack_init (&report_stk);
+ else
+ obstack_free (&report_stk, report_string);
+}
+
+void
+report_add (const char *fmt, ...)
+{
+ va_list ap;
+ char *str = NULL;
+ va_start (ap, fmt);
+ vasprintf (&str, fmt, ap);
+ va_end (ap);
+ if (str)
+ {
+ obstack_grow (&report_stk, str, strlen (str));
+ obstack_1grow (&report_stk, '\n');
+ }
+}
+
+void
+report_finish ()
+{
+ obstack_1grow (&report_stk, 0);
+ report_string = obstack_finish (&report_stk);
+}

Return to:

Send suggestions and report system problems to the System administrator.