summaryrefslogtreecommitdiff
path: root/capinfos.c
diff options
context:
space:
mode:
Diffstat (limited to 'capinfos.c')
-rw-r--r--capinfos.c87
1 files changed, 47 insertions, 40 deletions
diff --git a/capinfos.c b/capinfos.c
index 132caa5522..967a1847e5 100644
--- a/capinfos.c
+++ b/capinfos.c
@@ -702,14 +702,6 @@ print_stats(const gchar *filename, capture_info *cf_info)
if (cap_order) printf ("Strict time order: %s\n", order_string(cf_info->order));
if (cf_info->shb != NULL) {
- if (cap_comment) {
- unsigned int i;
- char *str;
-
- for (i = 0; wtap_block_get_nth_string_option_value(cf_info->shb, OPT_COMMENT, i, &str) == WTAP_OPTTYPE_SUCCESS; i++) {
- show_option_string("Capture comment: ", str);
- }
- }
if (cap_file_more_info) {
char *str;
@@ -720,6 +712,14 @@ print_stats(const gchar *filename, capture_info *cf_info)
if (wtap_block_get_string_option_value(cf_info->shb, OPT_SHB_USERAPPL, &str) == WTAP_OPTTYPE_SUCCESS)
show_option_string("Capture application: ", str);
}
+ if (cap_comment) {
+ unsigned int i;
+ char *str;
+
+ for (i = 0; wtap_block_get_nth_string_option_value(cf_info->shb, OPT_COMMENT, i, &str) == WTAP_OPTTYPE_SUCCESS; i++) {
+ show_option_string("Capture comment: ", str);
+ }
+ }
if (cap_file_idb && cf_info->num_interfaces != 0) {
guint i;
@@ -788,12 +788,12 @@ print_stats_table_header(void)
print_stats_table_header_label("MD5");
}
if (cap_order) print_stats_table_header_label("Strict time order");
- if (cap_comment) print_stats_table_header_label("Capture comment");
if (cap_file_more_info) {
print_stats_table_header_label("Capture hardware");
print_stats_table_header_label("Capture oper-sys");
print_stats_table_header_label("Capture application");
}
+ if (cap_comment) print_stats_table_header_label("Capture comment");
printf("\n");
}
@@ -973,36 +973,6 @@ print_stats_table(const gchar *filename, capture_info *cf_info)
}
if (cf_info->shb != NULL) {
- /*
- * this is silly to put into a table format, but oh well
- * note that there may be *more than one* of each of these types
- * of options. To mitigate some of the potential silliness should
- * the if(cap_comment) block be moved AFTER the if(cap_file_more_info)
- * block? That would make any comments the last item(s) in each row.
- * And/or should we add an cli option to inhibit the cap_comment to
- * more easily manage the potential silliness? Potential silliness
- * includes multiple comments and/or comments with embeded newlines.
- */
- if (cap_comment) {
- unsigned int i;
- char *opt_comment;
- gboolean have_cap = FALSE;
-
- for (i = 0; wtap_block_get_nth_string_option_value(cf_info->shb, OPT_COMMENT, i, &opt_comment) == WTAP_OPTTYPE_SUCCESS; i++) {
- have_cap = TRUE;
- putsep();
- putquote();
- printf("%s", opt_comment);
- putquote();
- }
- if(!have_cap) {
- /* Maintain column alignment when we have no OPT_COMMENT */
- putsep();
- putquote();
- putquote();
- }
- }
-
if (cap_file_more_info) {
char *str;
@@ -1027,6 +997,38 @@ print_stats_table(const gchar *filename, capture_info *cf_info)
}
putquote();
}
+
+ /*
+ * One might argue that the following is silly to put into a table format,
+ * but oh well note that there may be *more than one* of each of these types
+ * of options. To mitigate some of the potential silliness the if(cap_comment)
+ * block is moved AFTER the if(cap_file_more_info) block. This will make any
+ * comments the last item(s) in each row. We now have a new -K option to
+ * disable cap_comment to more easily manage the potential silliness.
+ * Potential silliness includes multiple comments (therefore resulting in
+ * more than one additional column and/or comments with embeded newlines
+ * and/or possible delimiters).
+ */
+ if (cap_comment) {
+ unsigned int i;
+ char *opt_comment;
+ gboolean have_cap = FALSE;
+
+ for (i = 0; wtap_block_get_nth_string_option_value(cf_info->shb, OPT_COMMENT, i, &opt_comment) == WTAP_OPTTYPE_SUCCESS; i++) {
+ have_cap = TRUE;
+ putsep();
+ putquote();
+ printf("%s", opt_comment);
+ putquote();
+ }
+ if(!have_cap) {
+ /* Maintain column alignment when we have no OPT_COMMENT */
+ putsep();
+ putquote();
+ putquote();
+ }
+ }
+
}
printf("\n");
@@ -1365,6 +1367,7 @@ print_usage(FILE *output)
fprintf(output, " -h display this help and exit\n");
fprintf(output, " -C cancel processing if file open fails (default is to continue)\n");
fprintf(output, " -A generate all infos (default)\n");
+ fprintf(output, " -K disable displaying the capture comment\n");
fprintf(output, "\n");
fprintf(output, "Options are processed from left to right order with later options superceding\n");
fprintf(output, "or adding to earlier options.\n");
@@ -1480,7 +1483,7 @@ main(int argc, char *argv[])
#endif
/* Process the options */
- while ((opt = getopt_long(argc, argv, "abcdehiklmoqrstuvxyzABCEFHILMNQRST", long_options, NULL)) !=-1) {
+ while ((opt = getopt_long(argc, argv, "abcdehiklmoqrstuvxyzABCEFHIKLMNQRST", long_options, NULL)) !=-1) {
switch (opt) {
@@ -1568,6 +1571,10 @@ main(int argc, char *argv[])
cap_comment = TRUE;
break;
+ case 'K':
+ cap_comment = FALSE;
+ break;
+
case 'F':
if (report_all_infos) disable_all_infos();
cap_file_more_info = TRUE;