move timestamp format options from "View->Options" dialog into

menuitems under "View->Time Display Format".
renamed timestamp enum items e.g. from ABSOLUTE to TS_ABSOLUTE,
to prevent conflicting definitions with MSVC

svn path=/trunk/; revision=9729
This commit is contained in:
Ulf Lamping 2004-01-19 03:46:43 +00:00
parent c19c7677fb
commit 0353c5823f
11 changed files with 172 additions and 153 deletions

View File

@ -1,7 +1,7 @@
/* column.c
* Routines for handling column preferences
*
* $Id: column.c,v 1.44 2003/12/09 06:48:38 guy Exp $
* $Id: column.c,v 1.45 2004/01/19 03:46:41 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -212,9 +212,9 @@ get_column_longest_string(gint format)
return "0000000";
break;
case COL_CLS_TIME:
if (timestamp_type == ABSOLUTE)
if (timestamp_type == TS_ABSOLUTE)
return "00:00:00.000000";
else if (timestamp_type == ABSOLUTE_WITH_DATE)
else if (timestamp_type == TS_ABSOLUTE_WITH_DATE)
return "0000-00-00 00:00:00.000000";
else
return "0000.000000";

View File

@ -1,6 +1,6 @@
/* dftest.c.c
*
* $Id: dftest.c,v 1.6 2003/08/18 18:35:21 guy Exp $
* $Id: dftest.c,v 1.7 2004/01/19 03:46:41 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -58,7 +58,7 @@
#include "register.h"
packet_info pi;
ts_type timestamp_type = RELATIVE;
ts_type timestamp_type = TS_RELATIVE;
int
main(int argc, char **argv)

View File

@ -1,7 +1,7 @@
/* column-utils.c
* Routines for column utilities.
*
* $Id: column-utils.c,v 1.41 2003/12/09 06:48:39 guy Exp $
* $Id: column-utils.c,v 1.42 2004/01/19 03:46:41 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -479,19 +479,19 @@ void
col_set_cls_time(frame_data *fd, column_info *cinfo, int col)
{
switch (timestamp_type) {
case ABSOLUTE:
case TS_ABSOLUTE:
col_set_abs_time(fd, cinfo, col);
break;
case ABSOLUTE_WITH_DATE:
case TS_ABSOLUTE_WITH_DATE:
col_set_abs_date_time(fd, cinfo, col);
break;
case RELATIVE:
case TS_RELATIVE:
col_set_rel_time(fd, cinfo, col);
break;
case DELTA:
case TS_DELTA:
col_set_delta_time(fd, cinfo, col);
break;
}

View File

@ -1,7 +1,7 @@
/* timestamp.h
* Defines for packet timestamps
*
* $Id: timestamp.h,v 1.2 2002/08/28 20:40:45 jmayer Exp $
* $Id: timestamp.h,v 1.3 2004/01/19 03:46:42 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -26,25 +26,21 @@
#ifndef __TIMESTAMP_H__
#define __TIMESTAMP_H__
/* MS VC has these macros */
#ifdef RELATIVE
#undef RELATIVE
#endif
#ifdef ABSOLUTE
#undef ABSOLUTE
#endif
/*
* Type of time-stamp shown in the summary display.
*/
typedef enum {
RELATIVE,
ABSOLUTE,
ABSOLUTE_WITH_DATE,
DELTA
TS_RELATIVE,
TS_ABSOLUTE,
TS_ABSOLUTE_WITH_DATE,
TS_DELTA
} ts_type;
extern ts_type timestamp_type;
static char *ts_type_text[] =
{ "RELATIVE", "ABSOLUTE", "ABSOLUTE_WITH_DATE", "DELTA", NULL };
#endif /* timestamp.h */

View File

@ -1,7 +1,7 @@
/* display_opts.c
* Routines for packet display windows
*
* $Id: display_opts.c,v 1.34 2004/01/10 16:27:41 ulfl Exp $
* $Id: display_opts.c,v 1.35 2004/01/19 03:46:42 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -41,10 +41,6 @@
extern capture_file cfile;
/* Display callback data keys */
#define E_DISPLAY_TIME_ABS_KEY "display_time_abs"
#define E_DISPLAY_DATE_TIME_ABS_KEY "display_date_time_abs"
#define E_DISPLAY_TIME_REL_KEY "display_time_rel"
#define E_DISPLAY_TIME_DELTA_KEY "display_time_delta"
#ifdef HAVE_LIBPCAP
#define E_DISPLAY_AUTO_SCROLL_KEY "display_auto_scroll"
#endif
@ -55,7 +51,6 @@ extern capture_file cfile;
static void display_opt_ok_cb(GtkWidget *, gpointer);
static void display_opt_apply_cb(GtkWidget *, gpointer);
static void get_display_options(GtkWidget *);
static void update_display(void);
static void display_opt_close_cb(GtkWidget *, gpointer);
static void display_opt_destroy_cb(GtkWidget *, gpointer);
@ -67,9 +62,6 @@ static void display_opt_destroy_cb(GtkWidget *, gpointer);
*/
static GtkWidget *display_opt_w;
static ts_type initial_timestamp_type;
static ts_type current_timestamp_type;
void
display_opt_cb(GtkWidget *w _U_, gpointer d _U_) {
GtkWidget *button, *main_vb, *bbox, *ok_bt, *apply_bt, *cancel_bt;
@ -83,17 +75,6 @@ display_opt_cb(GtkWidget *w _U_, gpointer d _U_) {
return;
}
/* Save the timestamp type value as of when the dialog box was first popped
up, so that "Cancel" can put it back if we've changed it with "Apply". */
initial_timestamp_type = timestamp_type;
/* Save the current timestamp type so that we know whether it has changed;
we don't want to redisplay the time fields unless we've changed the way
they should be displayed (as redisplaying the time fields could be
expensive - we have to scan through all the packets and rebuild the
packet list).*/
current_timestamp_type = timestamp_type;
display_opt_w = dlg_window_new("Ethereal: View Options");
SIGNAL_CONNECT(display_opt_w, "destroy", display_opt_destroy_cb, NULL);
@ -111,39 +92,6 @@ display_opt_cb(GtkWidget *w _U_, gpointer d _U_) {
gtk_container_add(GTK_CONTAINER(display_opt_w), main_vb);
gtk_widget_show(main_vb);
button = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL, "_Time of day",
accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button),
(timestamp_type == ABSOLUTE));
OBJECT_SET_DATA(display_opt_w, E_DISPLAY_TIME_ABS_KEY, button);
gtk_box_pack_start(GTK_BOX(main_vb), button, TRUE, TRUE, 0);
gtk_widget_show(button);
button = RADIO_BUTTON_NEW_WITH_MNEMONIC(
button, "_Date and time of day", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button),
(timestamp_type == ABSOLUTE_WITH_DATE));
OBJECT_SET_DATA(display_opt_w, E_DISPLAY_DATE_TIME_ABS_KEY, button);
gtk_box_pack_start(GTK_BOX(main_vb), button, TRUE, TRUE, 0);
gtk_widget_show(button);
button = RADIO_BUTTON_NEW_WITH_MNEMONIC(
button, "Seconds since _beginning of capture", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button),
(timestamp_type == RELATIVE));
OBJECT_SET_DATA(display_opt_w, E_DISPLAY_TIME_REL_KEY, button);
gtk_box_pack_start(GTK_BOX(main_vb), button, TRUE, TRUE, 0);
gtk_widget_show(button);
button = RADIO_BUTTON_NEW_WITH_MNEMONIC(
button, "Seconds since _previous packet", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button),
(timestamp_type == DELTA));
OBJECT_SET_DATA(display_opt_w, E_DISPLAY_TIME_DELTA_KEY, button);
gtk_box_pack_start(GTK_BOX(main_vb), button, TRUE, TRUE, 0);
gtk_widget_show(button);
#ifdef HAVE_LIBPCAP
button = CHECK_BUTTON_NEW_WITH_MNEMONIC(
"_Automatic scrolling in live capture", accel_group);
@ -217,14 +165,12 @@ display_opt_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) {
gtk_widget_destroy(GTK_WIDGET(parent_w));
update_display();
}
static void
display_opt_apply_cb(GtkWidget *ok_bt _U_, gpointer parent_w) {
get_display_options(GTK_WIDGET(parent_w));
update_display();
}
static void
@ -232,22 +178,6 @@ get_display_options(GtkWidget *parent_w)
{
GtkWidget *button;
button = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_DISPLAY_TIME_ABS_KEY);
if (GTK_TOGGLE_BUTTON (button)->active)
timestamp_type = ABSOLUTE;
button = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_DISPLAY_DATE_TIME_ABS_KEY);
if (GTK_TOGGLE_BUTTON (button)->active)
timestamp_type = ABSOLUTE_WITH_DATE;
button = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_DISPLAY_TIME_REL_KEY);
if (GTK_TOGGLE_BUTTON (button)->active)
timestamp_type = RELATIVE;
button = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_DISPLAY_TIME_DELTA_KEY);
if (GTK_TOGGLE_BUTTON (button)->active)
timestamp_type = DELTA;
#ifdef HAVE_LIBPCAP
button = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_DISPLAY_AUTO_SCROLL_KEY);
auto_scroll_live = (GTK_TOGGLE_BUTTON (button)->active);
@ -269,36 +199,9 @@ get_display_options(GtkWidget *parent_w)
}
static void
update_display(void)
{
if (timestamp_type != current_timestamp_type) {
/* Time stamp format changed; update the display.
XXX - redissecting the packets could actually be faster;
we have to find the row number for each frame, in order to
update the time stamp columns, and doing that is linear in
the row number, which means the whole process is N^2 in
the number of rows, whilst redissecting the packets is only
linear in the number of rows (assuming you're using our
CList code, or the GTK+ 1.2.8 CList code, or other CList
code which doesn't have to scan the entire list to find the
last element), even though the latter involves doing more work
per packet. */
current_timestamp_type = timestamp_type;
change_time_formats(&cfile);
}
}
static void
display_opt_close_cb(GtkWidget *close_bt _U_, gpointer parent_w)
{
/* Revert the timestamp type to the value it has when we started. */
timestamp_type = initial_timestamp_type;
/* Update the display if either of those changed. */
update_display();
gtk_grab_remove(GTK_WIDGET(parent_w));
gtk_widget_destroy(GTK_WIDGET(parent_w));
}

View File

@ -1,6 +1,6 @@
/* main.c
*
* $Id: main.c,v 1.358 2004/01/19 00:42:09 ulfl Exp $
* $Id: main.c,v 1.359 2004/01/19 03:46:42 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -155,7 +155,9 @@ static gboolean updated_last_open_dir = FALSE;
static gint root_x = G_MAXINT, root_y = G_MAXINT, top_width, top_height;
static gboolean updated_geometry = FALSE;
ts_type timestamp_type = RELATIVE;
/* init with an invalid value, so that "recent" can detect this and */
/* distinguish it from a command line value */
ts_type timestamp_type = -1;
#if GTK_MAJOR_VERSION < 2
GtkStyle *item_style;
@ -1805,13 +1807,13 @@ main(int argc, char *argv[])
break;
case 't': /* Time stamp type */
if (strcmp(optarg, "r") == 0)
timestamp_type = RELATIVE;
timestamp_type = TS_RELATIVE;
else if (strcmp(optarg, "a") == 0)
timestamp_type = ABSOLUTE;
timestamp_type = TS_ABSOLUTE;
else if (strcmp(optarg, "ad") == 0)
timestamp_type = ABSOLUTE_WITH_DATE;
timestamp_type = TS_ABSOLUTE_WITH_DATE;
else if (strcmp(optarg, "d") == 0)
timestamp_type = DELTA;
timestamp_type = TS_DELTA;
else {
fprintf(stderr, "ethereal: Invalid time stamp type \"%s\"\n",
optarg);

View File

@ -1,7 +1,7 @@
/* menu.c
* Menu routines
*
* $Id: menu.c,v 1.137 2004/01/19 00:42:10 ulfl Exp $
* $Id: menu.c,v 1.138 2004/01/19 03:46:42 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -85,6 +85,10 @@ static void packet_list_show_cb(GtkWidget *w _U_, gpointer d _U_);
static void tree_view_show_cb(GtkWidget *w _U_, gpointer d _U_);
static void byte_view_show_cb(GtkWidget *w _U_, gpointer d _U_);
static void statusbar_show_cb(GtkWidget *w _U_, gpointer d _U_);
static void timestamp_absolute_cb(GtkWidget *w _U_, gpointer d _U_);
static void timestamp_absolute_date_cb(GtkWidget *w _U_, gpointer d _U_);
static void timestamp_relative_cb(GtkWidget *w _U_, gpointer d _U_);
static void timestamp_delta_cb(GtkWidget *w _U_, gpointer d _U_);
/* This is the GtkItemFactoryEntry structure used to generate new menus.
Item 1: The menu path. The letter after the underscore indicates an
@ -183,15 +187,19 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_ENTRY("/View/Show/Packet Data", NULL, byte_view_show_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Show/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_ENTRY("/View/Show/Status Bar", NULL, statusbar_show_cb, 0, "<CheckItem>", NULL),
#if 0
/* XXX: the settings in the "Options" dialog could be seperated into the following menu items. */
/* before this, some effort must be taken to transfer the functionality of this dialog to the menu items */
/* (getting the current values, handling the radioitems, ...) */
ITEM_FACTORY_ENTRY("/View/_Time Display Format", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Time of day", NULL, NULL, 0, "<RadioItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Date and time of day", NULL, NULL, 0, "<RadioItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Seconds since beginning of capture", NULL, NULL, 0, "<RadioItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Seconds since previous capture", NULL, NULL, 0, "<RadioItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Time of day", NULL, timestamp_absolute_cb,
0, "<RadioItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Date and time of day", NULL, timestamp_absolute_date_cb,
0, "/View/Time Display Format/Time of day", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Seconds since beginning of capture", NULL, timestamp_relative_cb,
0, "/View/Time Display Format/Time of day", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Seconds since previous capture", NULL, timestamp_delta_cb,
0, "/View/Time Display Format/Time of day", NULL),
#if 0
ITEM_FACTORY_ENTRY("/View/_Name Resolution", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_ENTRY("/View/Name Resolution/Enable MAC", NULL, NULL, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Name Resolution/Enable Network", NULL, NULL, 0, "<CheckItem>", NULL),
@ -962,6 +970,47 @@ statusbar_show_cb(GtkWidget *w _U_, gpointer d _U_)
}
static void
timestamp_absolute_cb(GtkWidget *w _U_, gpointer d _U_)
{
if (recent.gui_time_format != TS_ABSOLUTE) {
timestamp_type = TS_ABSOLUTE;
recent.gui_time_format = timestamp_type;
change_time_formats(&cfile);
}
}
static void
timestamp_absolute_date_cb(GtkWidget *w _U_, gpointer d _U_)
{
if (recent.gui_time_format != TS_ABSOLUTE_WITH_DATE) {
timestamp_type = TS_ABSOLUTE_WITH_DATE;
recent.gui_time_format = timestamp_type;
change_time_formats(&cfile);
}
}
static void
timestamp_relative_cb(GtkWidget *w _U_, gpointer d _U_)
{
if (recent.gui_time_format != TS_RELATIVE) {
timestamp_type = TS_RELATIVE;
recent.gui_time_format = timestamp_type;
change_time_formats(&cfile);
}
}
static void
timestamp_delta_cb(GtkWidget *w _U_, gpointer d _U_)
{
if (recent.gui_time_format != TS_DELTA) {
timestamp_type = TS_DELTA;
recent.gui_time_format = timestamp_type;
change_time_formats(&cfile);
}
}
/* the recent file read has finished, update the menu corresponding */
void
menu_recent_read_finished(void) {
@ -986,6 +1035,42 @@ menu_recent_read_finished(void) {
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), recent.statusbar_show);
main_widgets_rearrange();
/* don't change the time format, if we had a command line value */
if (timestamp_type != -1) {
recent.gui_time_format = timestamp_type;
}
switch(recent.gui_time_format) {
case(TS_ABSOLUTE):
menu = gtk_item_factory_get_widget(main_menu_factory,
"/View/Time Display Format/Time of day");
/* set_active will not trigger the callback when activating an active item! */
recent.gui_time_format = -1;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), FALSE);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
break;
case(TS_ABSOLUTE_WITH_DATE):
menu = gtk_item_factory_get_widget(main_menu_factory,
"/View/Time Display Format/Date and time of day");
recent.gui_time_format = -1;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
break;
case(TS_RELATIVE):
menu = gtk_item_factory_get_widget(main_menu_factory,
"/View/Time Display Format/Seconds since beginning of capture");
recent.gui_time_format = -1;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
break;
case(TS_DELTA):
menu = gtk_item_factory_get_widget(main_menu_factory,
"/View/Time Display Format/Seconds since previous capture");
recent.gui_time_format = -1;
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
break;
default:
g_assert_not_reached();
}
}

View File

@ -1,7 +1,7 @@
/* packet_list.c
* packet list related functions 2002 Olivier Abad
*
* $Id: packet_list.c,v 1.10 2004/01/19 00:42:10 ulfl Exp $
* $Id: packet_list.c,v 1.11 2004/01/19 03:46:42 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -110,8 +110,8 @@ packet_list_compare(EthCList *clist, gconstpointer ptr1, gconstpointer ptr2)
gint col_fmt = cfile.cinfo.col_fmt[clist->sort_column];
if ((col_fmt == COL_NUMBER) || (col_fmt == COL_REL_TIME) || (col_fmt == COL_DELTA_TIME) ||
((col_fmt == COL_CLS_TIME) && (timestamp_type == RELATIVE)) ||
((col_fmt == COL_CLS_TIME) && (timestamp_type == DELTA)) ||
((col_fmt == COL_CLS_TIME) && (timestamp_type == TS_RELATIVE)) ||
((col_fmt == COL_CLS_TIME) && (timestamp_type == TS_DELTA)) ||
(col_fmt == COL_UNRES_SRC_PORT) || (col_fmt == COL_UNRES_DST_PORT) ||
((num1 != 0) && (num2 != 0) && ((col_fmt == COL_DEF_SRC_PORT) || (col_fmt == COL_RES_SRC_PORT) ||
(col_fmt == COL_DEF_DST_PORT) || (col_fmt == COL_RES_DST_PORT))) ||

View File

@ -2,7 +2,7 @@
* Recent "preference" handling routines
* Copyright 2004, Ulf Lamping <ulf.lamping@web.de>
*
* $Id: recent.c,v 1.2 2004/01/19 01:00:58 guy Exp $
* $Id: recent.c,v 1.3 2004/01/19 03:46:43 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -49,6 +49,29 @@ extern void menu_recent_read_finished(void);
recent_settings_t recent;
/* Takes an string and a pointer to an array of strings, and a default int value.
* The array must be terminated by a NULL string. If the string is found in the array
* of strings, the index of that string in the array is returned. Otherwise, the
* default value that was passed as the third argument is returned.
*/
static int
find_index_from_string_array(char *needle, char **haystack, int default_value)
{
int i = 0;
while (haystack[i] != NULL) {
if (strcmp(needle, haystack[i]) == 0) {
return i;
}
i++;
}
return default_value;
}
/* Write out "recent" to the user's recent file, and return 0.
If we got an error, stuff a pointer to the path of the recent file
into "*pf_path_return", and return the errno. */
@ -116,6 +139,11 @@ write_recent(char **rf_path_return)
fprintf(rf, RECENT_KEY_STATUSBAR_SHOW ": %s\n",
recent.statusbar_show == TRUE ? "TRUE" : "FALSE");
fprintf(rf, "\n# Timestamp display format.\n");
fprintf(rf, "# One of: RELATIVE, ABSOLUTE, ABSOLUTE_WITH_DATE, DELTA\n");
fprintf(rf, RECENT_GUI_TIME_FORMAT ": %s\n",
ts_type_text[recent.gui_time_format]);
fclose(rf);
/* XXX - catch I/O errors (e.g. "ran out of disk space") and return
@ -177,6 +205,9 @@ read_set_recent_pair(gchar *key, gchar *value)
else {
recent.statusbar_show = FALSE;
}
} else if (strcmp(key, RECENT_GUI_TIME_FORMAT) == 0) {
recent.gui_time_format =
find_index_from_string_array(value, ts_type_text, TS_RELATIVE);
}
return PREFS_SET_OK;
@ -192,12 +223,13 @@ read_recent(char **rf_path_return, int *rf_errno_return)
/* set defaults */
recent.main_toolbar_show = TRUE;
recent.filter_toolbar_show= TRUE;
recent.packet_list_show = TRUE;
recent.tree_view_show = TRUE;
recent.byte_view_show = TRUE;
recent.statusbar_show = TRUE;
recent.main_toolbar_show = TRUE;
recent.filter_toolbar_show = TRUE;
recent.packet_list_show = TRUE;
recent.tree_view_show = TRUE;
recent.byte_view_show = TRUE;
recent.statusbar_show = TRUE;
recent.gui_time_format = TS_RELATIVE;
/* Construct the pathname of the user's recent file. */
rf_path = get_persconffile_path(RECENT_FILE_NAME, FALSE);

View File

@ -2,7 +2,7 @@
* Definitions for recent "preference" handling routines
* Copyright 2004, Ulf Lamping <ulf.lamping@web.de>
*
* $Id: recent.h,v 1.1 2004/01/19 00:42:11 ulfl Exp $
* $Id: recent.h,v 1.2 2004/01/19 03:46:43 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -37,17 +37,18 @@
#define RECENT_KEY_TREE_VIEW_SHOW "gui.tree_view_show"
#define RECENT_KEY_BYTE_VIEW_SHOW "gui.byte_view_show"
#define RECENT_KEY_STATUSBAR_SHOW "gui.statusbar_show"
#define RECENT_GUI_TIME_FORMAT "gui.time_format"
typedef struct recent_settings_tag {
gboolean main_toolbar_show;
gboolean filter_toolbar_show;
gboolean packet_list_show;
/*gboolean packet_list_height;*/
/*gboolean packet_list_height;*/
gboolean tree_view_show;
/*gboolean tree_view_height;*/
/*gboolean tree_view_height;*/
gboolean byte_view_show;
gboolean statusbar_show;
gint gui_time_format;
} recent_settings_t;
extern recent_settings_t recent;

View File

@ -1,6 +1,6 @@
/* tethereal.c
*
* $Id: tethereal.c,v 1.221 2004/01/18 04:13:44 guy Exp $
* $Id: tethereal.c,v 1.222 2004/01/19 03:46:41 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -182,7 +182,7 @@ static int pipe_dispatch(int, loop_data *, struct pcap_hdr *, \
#endif
capture_file cfile;
ts_type timestamp_type = RELATIVE;
ts_type timestamp_type = TS_RELATIVE;
#ifdef HAVE_LIBPCAP
typedef struct {
int snaplen; /* Maximum captured packet length */
@ -1176,13 +1176,13 @@ main(int argc, char *argv[])
break;
case 't': /* Time stamp type */
if (strcmp(optarg, "r") == 0)
timestamp_type = RELATIVE;
timestamp_type = TS_RELATIVE;
else if (strcmp(optarg, "a") == 0)
timestamp_type = ABSOLUTE;
timestamp_type = TS_ABSOLUTE;
else if (strcmp(optarg, "ad") == 0)
timestamp_type = ABSOLUTE_WITH_DATE;
timestamp_type = TS_ABSOLUTE_WITH_DATE;
else if (strcmp(optarg, "d") == 0)
timestamp_type = DELTA;
timestamp_type = TS_DELTA;
else {
fprintf(stderr, "tethereal: Invalid time stamp type \"%s\"\n",
optarg);