summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gtk-helpers/abrt-keyring.c30
-rw-r--r--src/gtk-helpers/event_config_dialog.c223
-rw-r--r--src/gui-gtk/abrt-gtk.c2
-rw-r--r--src/gui-wizard-gtk/wizard.c4
-rw-r--r--src/lib/abrt_dbus.c2
-rw-r--r--src/lib/event_config.c2
-rw-r--r--src/lib/event_xml_parser.c2
-rw-r--r--src/plugins/abrt-action-kerneloops.c2
8 files changed, 124 insertions, 143 deletions
diff --git a/src/gtk-helpers/abrt-keyring.c b/src/gtk-helpers/abrt-keyring.c
index 50bfa7e3..021bf281 100644
--- a/src/gtk-helpers/abrt-keyring.c
+++ b/src/gtk-helpers/abrt-keyring.c
@@ -16,9 +16,9 @@ static guint32 search_item_id(const char *event_name)
GNOME_KEYRING_ITEM_GENERIC_SECRET,
attrs,
&found);
- if(result != GNOME_KEYRING_RESULT_OK)
+ if (result != GNOME_KEYRING_RESULT_OK)
return item_id;
- if(found)
+ if (found)
{
item_id = ((GnomeKeyringFound *)found->data)->item_id;
gnome_keyring_found_list_free(found);
@@ -34,7 +34,7 @@ void abrt_keyring_save_settings(const char *event_name)
event_config_t *ec = get_event_config(event_name);
/* add string id which we use to search for items */
gnome_keyring_attribute_list_append_string(attrs, "libreportEventConfig", event_name);
- for(l = g_list_first(ec->options); l != NULL; l = g_list_next(l))
+ for (l = g_list_first(ec->options); l != NULL; l = g_list_next(l))
{
event_option_t *op = (event_option_t *)l->data;
gnome_keyring_attribute_list_append_string(attrs, op->name, op->value);
@@ -42,7 +42,7 @@ void abrt_keyring_save_settings(const char *event_name)
GnomeKeyringResult result;
item_id = search_item_id(event_name);
- if(item_id)
+ if (item_id)
{
VERB2 log("updating item with id: %i", item_id);
/* found existing item, so just update the values */
@@ -61,7 +61,7 @@ void abrt_keyring_save_settings(const char *event_name)
VERB2 log("created new item with id: %i", item_id);
}
- if(result != GNOME_KEYRING_RESULT_OK)
+ if (result != GNOME_KEYRING_RESULT_OK)
{
VERB2 log("error occured, settings is not saved!");
return;
@@ -73,23 +73,23 @@ static void abrt_keyring_load_settings(const char *event_name, event_config_t *e
{
GnomeKeyringAttributeList *attrs = gnome_keyring_attribute_list_new();
guint item_id = search_item_id(event_name);
- if(!item_id)
+ if (!item_id)
return;
GnomeKeyringResult result = gnome_keyring_item_get_attributes_sync(
keyring,
item_id,
&attrs);
VERB2 log("num attrs %i", attrs->len);
- if(result != GNOME_KEYRING_RESULT_OK)
+ if (result != GNOME_KEYRING_RESULT_OK)
return;
guint index;
- for(index = 0; index < attrs->len; index++)
+ for (index = 0; index < attrs->len; index++)
{
char *name = g_array_index(attrs, GnomeKeyringAttribute, index).name;
VERB2 log("load %s", name);
event_option_t *option = get_event_option_from_list(name, ec->options);
- if(option)
+ if (option)
option->value = g_array_index(attrs, GnomeKeyringAttribute, index).value.string;
VERB2 log("loaded %s", name);
//VERB2 log("load %s", g_array_index(attrs, GnomeKeyringAttribute, index).value);
@@ -100,15 +100,15 @@ VERB2 log("loaded %s", name);
static void init_keyring()
{
//called again?
- if(keyring)
+ if (keyring)
return;
- if(!gnome_keyring_is_available())
+ if (!gnome_keyring_is_available())
{
VERB2 log("Cannot connect to the Gnome Keyring daemon.");
return;
}
GnomeKeyringResult result = gnome_keyring_get_default_keyring_sync(&keyring);
- if(result != GNOME_KEYRING_RESULT_OK || keyring == NULL)
+ if (result != GNOME_KEYRING_RESULT_OK || keyring == NULL)
VERB2 log("can't get the default kerying");
/*
The default keyring might not be set - in that case result = OK, but the
@@ -122,7 +122,7 @@ void load_event_config(gpointer key, gpointer value, gpointer user_data)
{
char* event_name = (char*)key;
event_config_t *ec = (event_config_t *)value;
-VERB2 log("from keyring loading: %s\n", event_name);
+VERB2 log("from keyring loading: %s", event_name);
abrt_keyring_load_settings(event_name, ec);
}
@@ -133,7 +133,7 @@ VERB2 log("from keyring loading: %s\n", event_name);
void load_event_config_data_from_keyring()
{
init_keyring();
- if(!keyring)
+ if (!keyring)
return;
g_hash_table_foreach(g_event_config_list, &load_event_config, NULL);
-} \ No newline at end of file
+}
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c
index cdfcb844..b6a4a842 100644
--- a/src/gtk-helpers/event_config_dialog.c
+++ b/src/gtk-helpers/event_config_dialog.c
@@ -23,20 +23,7 @@ typedef struct
static void show_event_config_dialog(const char *event_name);
-static void show_error_message(const char* message, GtkWindow *parent)
-{
- GtkWidget *dialog = gtk_message_dialog_new(parent,
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- message
- );
- gtk_window_set_icon_name(GTK_WINDOW(dialog), "abrt");
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
-}
-
-GtkWidget *gtk_label_new_justify_left(const gchar *label_str)
+static GtkWidget *gtk_label_new_justify_left(const gchar *label_str)
{
GtkWidget *label = gtk_label_new(label_str);
gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
@@ -64,12 +51,12 @@ static void add_option_to_dialog(event_option_t *option)
GtkWidget *option_input;
GtkWidget *option_hbox = gtk_hbox_new(FALSE, 0);
char *option_label;
- if(option->label != NULL)
+ if (option->label != NULL)
option_label = option->label;
else
option_label = option->name;
- switch(option->type)
+ switch (option->type)
{
case OPTION_TYPE_TEXT:
case OPTION_TYPE_NUMBER:
@@ -80,7 +67,7 @@ static void add_option_to_dialog(event_option_t *option)
GTK_FILL, GTK_FILL,
0,0);
option_input = gtk_entry_new();
- if(option->value != NULL)
+ if (option->value != NULL)
gtk_entry_set_text(GTK_ENTRY(option_input), option->value);
gtk_table_attach(GTK_TABLE(option_table), option_input,
1, 2,
@@ -96,7 +83,7 @@ static void add_option_to_dialog(event_option_t *option)
last_row, last_row+1,
GTK_FILL, GTK_FILL,
0,0);
- if(option->value != NULL)
+ if (option->value != NULL)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(option_input),
(strcmp("yes",option->value)==0));
add_option_widget(option_input, option);
@@ -109,7 +96,7 @@ static void add_option_to_dialog(event_option_t *option)
GTK_FILL, GTK_FILL,
0,0);
option_input = gtk_entry_new();
- if(option->value != NULL)
+ if (option->value != NULL)
gtk_entry_set_text(GTK_ENTRY(option_input), option->value);
gtk_table_attach(GTK_TABLE(option_table), option_input,
1, 2,
@@ -129,7 +116,7 @@ static void add_option_to_dialog(event_option_t *option)
break;
default:
//option_input = gtk_label_new_justify_left("WTF?");
- g_print("unsupported option type\n");
+ log("unsupported option type");
}
last_row++;
@@ -170,17 +157,17 @@ static void on_configure_event_cb(GtkWidget *button, gpointer user_data)
{
GtkTreeView *events_tv = (GtkTreeView *)user_data;
char *event_name = get_event_name_from_row(events_tv);
- if(event_name != NULL)
+ if (event_name != NULL)
show_event_config_dialog(event_name);
- else
- show_error_message(_("Please select a plugin from the list to edit its options."), NULL);
+ //else
+ // error_msg(_("Please select a plugin from the list to edit its options."));
}
static void on_event_row_activated_cb(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data)
{
char *event_name = get_event_name_from_row(treeview);
event_config_t *ec = get_event_config(event_name);
- if(ec->options != NULL) //We need to have some options to show
+ if (ec->options != NULL) //We need to have some options to show
show_event_config_dialog(event_name);
}
@@ -196,7 +183,7 @@ static void add_event_to_liststore(gpointer key, gpointer value, gpointer user_d
GtkListStore *events_list_store = (GtkListStore *)user_data;
event_config_t *ec = (event_config_t *)value;
char *event_label = NULL;
- if(ec->screen_name != NULL && ec->description != NULL)
+ if (ec->screen_name != NULL && ec->description != NULL)
event_label = xasprintf("<b>%s</b>\n%s", ec->screen_name, ec->description);
else
//if event has no xml description
@@ -215,7 +202,7 @@ static void add_event_to_liststore(gpointer key, gpointer value, gpointer user_d
static void save_value_from_widget(gpointer data, gpointer user_data)
{
option_widget_t *ow = (option_widget_t *)data;
- switch(ow->option->type)
+ switch (ow->option->type)
{
case OPTION_TYPE_TEXT:
case OPTION_TYPE_NUMBER:
@@ -226,20 +213,20 @@ static void save_value_from_widget(gpointer data, gpointer user_data)
ow->option->value = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ow->widget)) ? xstrdup("yes") : xstrdup("no");
break;
default:
- g_print("unsupported option type\n");
+ log("unsupported option type");
}
VERB1 log("saved: %s:%s", ow->option->name, ow->option->value);
}
static void dehydrate_config_dialog()
{
- if(option_widget_list != NULL)
+ if (option_widget_list != NULL)
g_list_foreach(option_widget_list, &save_value_from_widget, NULL);
}
static void show_event_config_dialog(const char *event_name)
{
- if(option_widget_list != NULL)
+ if (option_widget_list != NULL)
{
g_list_free(option_widget_list);
option_widget_list = NULL;
@@ -247,7 +234,7 @@ static void show_event_config_dialog(const char *event_name)
event_config_t *event = get_event_config(event_name);
char *title;
- if(event->screen_name != NULL)
+ if (event->screen_name != NULL)
title = event->screen_name;
else
title = _("Event Configuration");
@@ -261,7 +248,7 @@ static void show_event_config_dialog(const char *event_name)
GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL,
NULL);
- if(parent_dialog != NULL)
+ if (parent_dialog != NULL)
{
gtk_window_set_icon_name(GTK_WINDOW(dialog),
gtk_window_get_icon_name(GTK_WINDOW(parent_dialog)));
@@ -274,104 +261,98 @@ static void show_event_config_dialog(const char *event_name)
gtk_box_pack_start(GTK_BOX(content), option_table, false, false, 20);
gtk_widget_show_all(option_table);
int result = gtk_dialog_run(GTK_DIALOG(dialog));
- if(result == GTK_RESPONSE_APPLY)
+ if (result == GTK_RESPONSE_APPLY)
{
dehydrate_config_dialog();
abrt_keyring_save_settings(event_name);
}
- else if(result == GTK_RESPONSE_CANCEL)
- g_print("cancel\n");
+ //else if (result == GTK_RESPONSE_CANCEL)
+ // log("log");
gtk_widget_destroy(GTK_WIDGET(dialog));
}
void show_events_list_dialog(GtkWindow *parent)
{
- /*remove this line if we want to reload the config
- *everytime we show the config dialog
- */
- if(g_event_config_list == NULL)
- {
- load_event_config_data();
- load_event_config_data_from_keyring();
- }
- if(g_event_config_list == NULL)
- {
- VERB1 log("can't load event's config\n");
- show_error_message(_("Can't load event descriptions"), parent);
- return;
- }
- parent_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(parent_dialog), _("Events"));
- gtk_window_set_default_size(GTK_WINDOW(parent_dialog), 450, 400);
- if(parent != NULL)
- {
- gtk_window_set_transient_for(GTK_WINDOW(parent_dialog), parent);
- // modal = parent window can't steal focus
- gtk_window_set_modal(GTK_WINDOW(parent_dialog), true);
- gtk_window_set_icon_name(GTK_WINDOW(parent_dialog),
- gtk_window_get_icon_name(parent));
- }
+ /*remove this line if we want to reload the config
+ *everytime we show the config dialog
+ */
+ if (g_event_config_list == NULL)
+ {
+ load_event_config_data();
+ load_event_config_data_from_keyring();
+ }
+ parent_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(parent_dialog), _("Events"));
+ gtk_window_set_default_size(GTK_WINDOW(parent_dialog), 450, 400);
+ if (parent != NULL)
+ {
+ gtk_window_set_transient_for(GTK_WINDOW(parent_dialog), parent);
+ // modal = parent window can't steal focus
+ gtk_window_set_modal(GTK_WINDOW(parent_dialog), true);
+ gtk_window_set_icon_name(GTK_WINDOW(parent_dialog),
+ gtk_window_get_icon_name(parent));
+ }
- GtkWidget *main_vbox = gtk_vbox_new(0, 0);
- GtkWidget *events_scroll = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(events_scroll),
- GTK_POLICY_NEVER,
- GTK_POLICY_AUTOMATIC);
- /* event list treeview */
- GtkWidget *events_tv = gtk_tree_view_new();
- /* column with event name and description */
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
-
- /* add column to tree view */
- renderer = gtk_cell_renderer_text_new();
- column = gtk_tree_view_column_new_with_attributes(_("Event"),
- renderer,
- "markup",
- COLUMN_EVENT_UINAME,
- "background",
- COLUMN_EVENT_BG,
- NULL);
- gtk_tree_view_column_set_resizable(column, TRUE);
- g_object_set(G_OBJECT(renderer), "wrap-mode", PANGO_WRAP_WORD, NULL);
- g_object_set(G_OBJECT(renderer), "wrap-width", 440, NULL);
- gtk_tree_view_column_set_sort_column_id(column, COLUMN_EVENT_NAME);
- gtk_tree_view_append_column(GTK_TREE_VIEW(events_tv), column);
-
- /* Create data store for the list and attach it
- * COLUMN_EVENT_UINAME -> name+description
- * COLUMN_EVENT_NAME -> event name so we can retrieve it from the row
- */
- GtkListStore *events_list_store = gtk_list_store_new(NUM_COLUMNS,
- G_TYPE_STRING, /* Event name + description */
- G_TYPE_STRING, /* event name */
- G_TYPE_STRING);/* bg color */
- gtk_tree_view_set_model(GTK_TREE_VIEW(events_tv), GTK_TREE_MODEL(events_list_store));
-
- g_hash_table_foreach(g_event_config_list,
- &add_event_to_liststore,
- events_list_store);
-
- /* Double click/Enter handler */
- g_signal_connect(events_tv, "row-activated", G_CALLBACK(on_event_row_activated_cb), NULL);
-
- gtk_container_add(GTK_CONTAINER(events_scroll), events_tv);
-
- GtkWidget *configure_event_btn = gtk_button_new_with_mnemonic(_("Configure E_vent"));
- gtk_widget_set_sensitive(configure_event_btn, false);
- g_signal_connect(configure_event_btn, "clicked", G_CALLBACK(on_configure_event_cb), events_tv);
- g_signal_connect(events_tv, "cursor-changed", G_CALLBACK(on_event_row_changed_cb), configure_event_btn);
-
- GtkWidget *close_btn = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- g_signal_connect(close_btn, "clicked", G_CALLBACK(on_close_event_list_cb), parent_dialog);
-
- GtkWidget *btnbox = gtk_hbutton_box_new();
- gtk_box_pack_end(GTK_BOX(btnbox), configure_event_btn, false, false, 0);
- gtk_box_pack_end(GTK_BOX(btnbox), close_btn, false, false, 0);
-
- gtk_box_pack_start(GTK_BOX(main_vbox), events_scroll, true, true, 10);
- gtk_box_pack_start(GTK_BOX(main_vbox), btnbox, false, false, 0);
- gtk_container_add(GTK_CONTAINER(parent_dialog), main_vbox);
-
- gtk_widget_show_all(parent_dialog);
+ GtkWidget *main_vbox = gtk_vbox_new(0, 0);
+ GtkWidget *events_scroll = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(events_scroll),
+ GTK_POLICY_NEVER,
+ GTK_POLICY_AUTOMATIC);
+ /* event list treeview */
+ GtkWidget *events_tv = gtk_tree_view_new();
+ /* column with event name and description */
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ /* add column to tree view */
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes(_("Event"),
+ renderer,
+ "markup",
+ COLUMN_EVENT_UINAME,
+ "background",
+ COLUMN_EVENT_BG,
+ NULL);
+ gtk_tree_view_column_set_resizable(column, TRUE);
+ g_object_set(G_OBJECT(renderer), "wrap-mode", PANGO_WRAP_WORD, NULL);
+ g_object_set(G_OBJECT(renderer), "wrap-width", 440, NULL);
+ gtk_tree_view_column_set_sort_column_id(column, COLUMN_EVENT_NAME);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(events_tv), column);
+
+ /* Create data store for the list and attach it
+ * COLUMN_EVENT_UINAME -> name+description
+ * COLUMN_EVENT_NAME -> event name so we can retrieve it from the row
+ */
+ GtkListStore *events_list_store = gtk_list_store_new(NUM_COLUMNS,
+ G_TYPE_STRING, /* Event name + description */
+ G_TYPE_STRING, /* event name */
+ G_TYPE_STRING);/* bg color */
+ gtk_tree_view_set_model(GTK_TREE_VIEW(events_tv), GTK_TREE_MODEL(events_list_store));
+
+ g_hash_table_foreach(g_event_config_list,
+ &add_event_to_liststore,
+ events_list_store);
+
+ /* Double click/Enter handler */
+ g_signal_connect(events_tv, "row-activated", G_CALLBACK(on_event_row_activated_cb), NULL);
+
+ gtk_container_add(GTK_CONTAINER(events_scroll), events_tv);
+
+ GtkWidget *configure_event_btn = gtk_button_new_with_mnemonic(_("Configure E_vent"));
+ gtk_widget_set_sensitive(configure_event_btn, false);
+ g_signal_connect(configure_event_btn, "clicked", G_CALLBACK(on_configure_event_cb), events_tv);
+ g_signal_connect(events_tv, "cursor-changed", G_CALLBACK(on_event_row_changed_cb), configure_event_btn);
+
+ GtkWidget *close_btn = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ g_signal_connect(close_btn, "clicked", G_CALLBACK(on_close_event_list_cb), parent_dialog);
+
+ GtkWidget *btnbox = gtk_hbutton_box_new();
+ gtk_box_pack_end(GTK_BOX(btnbox), configure_event_btn, false, false, 0);
+ gtk_box_pack_end(GTK_BOX(btnbox), close_btn, false, false, 0);
+
+ gtk_box_pack_start(GTK_BOX(main_vbox), events_scroll, true, true, 10);
+ gtk_box_pack_start(GTK_BOX(main_vbox), btnbox, false, false, 0);
+ gtk_container_add(GTK_CONTAINER(parent_dialog), main_vbox);
+
+ gtk_widget_show_all(parent_dialog);
}
diff --git a/src/gui-gtk/abrt-gtk.c b/src/gui-gtk/abrt-gtk.c
index ea85b0b6..e1aa2f84 100644
--- a/src/gui-gtk/abrt-gtk.c
+++ b/src/gui-gtk/abrt-gtk.c
@@ -215,7 +215,7 @@ static void on_menu_about_cb(GtkMenuItem *menuitem, gpointer unused)
gtk_widget_hide(GTK_WIDGET(about_d));
}
-void show_events_list_dialog_cb(GtkMenuItem *menuitem, gpointer user_data)
+static void show_events_list_dialog_cb(GtkMenuItem *menuitem, gpointer user_data)
{
show_events_list_dialog(GTK_WINDOW(g_main_window));
}
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index d0a9c080..0261414f 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1105,8 +1105,8 @@ static gboolean highlight_search(gpointer user_data)
gtk_text_buffer_get_start_iter(buffer, &start_find);
gtk_text_buffer_get_end_iter(buffer, &end_find);
gtk_text_buffer_remove_tag_by_name(buffer, "search_result_bg", &start_find, &end_find);
- VERB1 log("searching: %s\n", gtk_entry_get_text(entry));
- while(gtk_text_iter_forward_search(&start_find, gtk_entry_get_text(entry),
+ VERB1 log("searching: %s", gtk_entry_get_text(entry));
+ while (gtk_text_iter_forward_search(&start_find, gtk_entry_get_text(entry),
GTK_TEXT_SEARCH_TEXT_ONLY, &start_match,
&end_match, NULL))
{
diff --git a/src/lib/abrt_dbus.c b/src/lib/abrt_dbus.c
index 5d8d861d..a4bab15f 100644
--- a/src/lib/abrt_dbus.c
+++ b/src/lib/abrt_dbus.c
@@ -777,7 +777,7 @@ static DBusMessage* send_get_reply_and_unref(DBusMessage* msg)
{
error_msg_and_die("dbus Warning message: arguments mismatch");
}
- log(">! %s\n", warning_msg);
+ log(">! %s", warning_msg);
}
else
if (tp == DBUS_MESSAGE_TYPE_METHOD_RETURN
diff --git a/src/lib/event_config.c b/src/lib/event_config.c
index 313c0f6a..79b338db 100644
--- a/src/lib/event_config.c
+++ b/src/lib/event_config.c
@@ -47,7 +47,7 @@ static int cmp_event_option_name_with_string(gconstpointer a, gconstpointer b)
event_option_t *get_event_option_from_list(const char *name, GList *options)
{
GList *elem = g_list_find_custom(options, name, &cmp_event_option_name_with_string);
- if(elem)
+ if (elem)
return (event_option_t *)elem->data;
return NULL;
}
diff --git a/src/lib/event_xml_parser.c b/src/lib/event_xml_parser.c
index f24606e0..eb36c837 100644
--- a/src/lib/event_xml_parser.c
+++ b/src/lib/event_xml_parser.c
@@ -79,7 +79,7 @@ static void start_element(GMarkupParseContext *context,
gpointer user_data,
GError **error)
{
- //g_print("start: %s\n", element_name);
+ //log("start: %s", element_name);
struct my_parse_data *parse_data = user_data;
diff --git a/src/plugins/abrt-action-kerneloops.c b/src/plugins/abrt-action-kerneloops.c
index 8d00da52..fdcf4182 100644
--- a/src/plugins/abrt-action-kerneloops.c
+++ b/src/plugins/abrt-action-kerneloops.c
@@ -30,7 +30,7 @@ static size_t writefunction(void *ptr, size_t size, size_t nmemb, void *stream)
/*
char *c, *c1, *c2;
- log("received: '%*.*s'\n", (int)size, (int)size, (char*)ptr);
+ log("received: '%*.*s'", (int)size, (int)size, (char*)ptr);
c = (char*)xzalloc(size + 1);
memcpy(c, ptr, size);
c1 = strstr(c, "201 ");