Create BSD wrapper for uuid
[babeltrace.git] / converter / babeltrace-log.c
index 2b573bdeef22a0db7590b89de10a2efc4c71bdb3..ac66a8b08d878e2be09548be0320d2a3bb0321fc 100644 (file)
@@ -20,6 +20,7 @@
  * Depends on glibc 2.10 for getline().
  */
 
+#include <config.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <string.h>
 #include <endian.h>
 
-#include <babeltrace/babeltrace.h>
+#include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/ctf/types.h>
+#include <babeltrace/uuid.h>
 
 #define USEC_PER_SEC 1000000UL
 
-#ifndef UUID_STR_LEN
-#define UUID_STR_LEN   37      /* With \0 */
-#endif
-
 int babeltrace_debug, babeltrace_verbose;
 
 static char *s_outputname;
@@ -52,6 +50,7 @@ static uuid_t s_uuid;
 
 /* Metadata format string */
 static const char metadata_fmt[] =
+"/* CTF 1.8 */\n"
 "typealias integer { size = 8; align = 8; signed = false; } := uint8_t;\n"
 "typealias integer { size = 32; align = 32; signed = false; } := uint32_t;\n"
 "\n"
@@ -88,12 +87,17 @@ static const char metadata_stream_event_header_timestamp[] =
 static
 void print_metadata(FILE *fp)
 {
-       char uuid_str[UUID_STR_LEN];
+       char uuid_str[BABELTRACE_UUID_STR_LEN];
+       unsigned int major = 0, minor = 0;
+       int ret;
 
-       uuid_unparse(s_uuid, uuid_str);
+       ret = sscanf(VERSION, "%u.%u", &major, &minor);
+       if (ret != 2)
+               fprintf(stderr, "[warning] Incorrect babeltrace version format\n.");
+       babeltrace_uuid_unparse(s_uuid, uuid_str);
        fprintf(fp, metadata_fmt,
-               BABELTRACE_VERSION_MAJOR,
-               BABELTRACE_VERSION_MINOR,
+               major,
+               minor,
                uuid_str,
                BYTE_ORDER == LITTLE_ENDIAN ? "le" : "be",
                s_timestamp ? metadata_stream_event_header_timestamp : "");
@@ -205,7 +209,7 @@ retry:
                write_packet_header(pos, s_uuid);
                write_packet_context(pos);
                if (attempt++ == 1) {
-                       fprintf(stdout, "[Error] Line too large for packet size (%zukB) (discarded)\n",
+                       fprintf(stderr, "[Error] Line too large for packet size (%zukB) (discarded)\n",
                                pos->packet_size / CHAR_BIT / 1024);
                        return;
                }
@@ -245,9 +249,7 @@ void trace_text(FILE *input, int output)
 static
 void usage(FILE *fp)
 {
-       fprintf(fp, "BabelTrace Log Converter %u.%u\n",
-               BABELTRACE_VERSION_MAJOR,
-               BABELTRACE_VERSION_MINOR);
+       fprintf(fp, "BabelTrace Log Converter %s\n", VERSION);
        fprintf(fp, "\n");
        fprintf(fp, "Convert for a text log (read from standard input) to CTF.\n");
        fprintf(fp, "\n");
@@ -289,8 +291,8 @@ int main(int argc, char **argv)
 
        ret = parse_args(argc, argv);
        if (ret) {
-               fprintf(stdout, "Error: invalid argument.\n");
-               usage(stdout);
+               fprintf(stderr, "Error: invalid argument.\n");
+               usage(stderr);
                goto error;
        }
 
This page took 0.023596 seconds and 4 git commands to generate.