Add missing permission notice in each source file
[babeltrace.git] / formats / ctf-text / types / enum.c
index 7a9a948d3e5ee0fbe080e79766578fbac2743391..9df8da84e40615058f2f1d3e061d76358af9ff56 100644 (file)
@@ -3,7 +3,9 @@
  *
  * Enumeration mapping strings (quarks) from/to integers.
  *
- * Copyright 2010, 2011 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation
+ *
+ * Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  */
 
 #include <babeltrace/ctf-text/types.h>
@@ -28,9 +38,12 @@ int ctf_text_enum_write(struct stream_pos *ppos, struct definition *definition)
                enum_definition->integer;
        struct ctf_text_stream_pos *pos = ctf_text_pos(ppos);
        GArray *qs;
-       int i, ret;
+       int ret;
        int field_nr_saved;
 
+       if (!print_field(definition))
+               return 0;
+
        if (pos->dummy)
                return 0;
 
@@ -39,29 +52,35 @@ int ctf_text_enum_write(struct stream_pos *ppos, struct definition *definition)
        fprintf(pos->fp, " ");
        if (pos->print_names)
                fprintf(pos->fp, "%s = ",
-                       g_quark_to_string(definition->name));
+                       rem_(g_quark_to_string(definition->name)));
 
        field_nr_saved = pos->field_nr;
        pos->field_nr = 0;
        fprintf(pos->fp, "(");
        pos->depth++;
-       ret = generic_rw(ppos, &integer_definition->p);
-       fprintf(pos->fp, ":");
-
        qs = enum_definition->value;
-       assert(qs);
 
-       pos->field_nr = 0;
-       for (i = 0; i < qs->len; i++) {
-               GQuark q = g_array_index(qs, GQuark, i);
-               const char *str = g_quark_to_string(q);
+       if (qs) {
+               int i;
+
+               for (i = 0; i < qs->len; i++) {
+                       GQuark q = g_array_index(qs, GQuark, i);
+                       const char *str = g_quark_to_string(q);
 
-               assert(str);
-               if (pos->field_nr++ != 0)
-                       fprintf(pos->fp, ",");
-               fprintf(pos->fp, " ");
-               fprintf(pos->fp, "%s", str);
+                       assert(str);
+                       if (pos->field_nr++ != 0)
+                               fprintf(pos->fp, ",");
+                       fprintf(pos->fp, " ");
+                       fprintf(pos->fp, "%s", str);
+               }
+       } else {
+               fprintf(pos->fp, " <unknown>");
        }
+
+       pos->field_nr = 0;
+       fprintf(pos->fp, " :");
+       ret = generic_rw(ppos, &integer_definition->p);
+
        pos->depth--;
        fprintf(pos->fp, " )");
        pos->field_nr = field_nr_saved;
This page took 0.024076 seconds and 4 git commands to generate.