* 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>
#define USEC_PER_SEC 1000000UL
/* 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"
void print_metadata(FILE *fp)
{
char uuid_str[UUID_STR_LEN];
+ unsigned int major = 0, minor = 0;
+ int ret;
+ ret = sscanf(VERSION, "%u.%u", &major, &minor);
+ if (ret != 2)
+ fprintf(stderr, "[warning] Incorrect babeltrace version format\n.");
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 : "");
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;
}
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");
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;
}