commit 740998a2dff24f593ff46460f11042e632cdfadb
parent 18b7c94c77fda51589f7a1f6a93dff4e2e1c3d62
Author: Kyle Milz <kmilz@ucalgary.ca>
Date: Sat, 13 Oct 2012 21:27:12 -0600
use eina_strbuf in update_url function
Diffstat:
3 files changed, 31 insertions(+), 53 deletions(-)
diff --git a/src/commands.c b/src/commands.c
@@ -1327,10 +1327,6 @@ list(const Arg *arg, void *data)
char status_buf[512] = "";
strcat(status_buf, "<font=Monospace font_size=11 backing=on backing_color=#FFF>");
- char *flags_str = status_flags(td);
- strcat(status_buf, flags_str);
- free(flags_str);
-
elm_object_text_set(label, status_buf);
/*
diff --git a/src/utilities.c b/src/utilities.c
@@ -943,51 +943,27 @@ update_state(Window_Data *wd)
eina_strbuf_free(status);
}
-char*
-/* must free() the return value */
-status_flags(void *data)
-{
- char *end;
- Buffer_Data *bd = data;
- char *flags = calloc(32, 1);
-
- /*
- strcat(flags, "[");
- strcat(flags, bd->proxy_enabled ? "P" : " ");
- strcat(flags, bd->inspector_enabled ? "I" : " ");
- // strcat(flags, bd->history_enabled ? "H" : " ");
- Hist_Item *item = hist_items_get(bd->window->app->history, ewk_view_url_get(bd->view));
- strcat(flags, (item && hist_item_enabled_get(item)) ? "H" : " ");
- strcat(flags, bd->cookies_enabled ? "C" : " ");
- */
- end = strdup_printf(" %2i ", bd->buf_number);
- strcat(flags, end);
- free(end);
-
- return flags;
-}
-
void
-update_url(const char *uri, void *data)
+update_url(const char *uri, Window_Data *wd)
{
- char *tmp;
+ Eina_Bool back, fwd;
+ Eina_Strbuf *url_buf;
+
char before[] = " [";
char after[] = "]";
- char url_buf[1024] = "";
- Window_Data *ad = data;
- Buffer_Data *bd = ad->cur_buf;
+ Buffer_Data *bd = wd->cur_buf;
+ char *url_color = "#FFF";
if (uri == NULL)
return;
- Eina_Bool back = ewk_view_back_possible(bd->view);
- Eina_Bool fwd = ewk_view_forward_possible(bd->view);
-
- // Evas_Object *frame = ewk_view_frame_main_get(bd->view);
- char *url_color = "#FFF";
+ url_buf = eina_strbuf_new();
+ back = ewk_view_back_possible(bd->view);
+ fwd = ewk_view_forward_possible(bd->view);
/*
if (!strncmp(uri, "https://", 8)) {
+ Evas_Object *frame = ewk_view_frame_main_get(bd->view);
Ewk_Certificate_Status cert_status = ewk_frame_certificate_status_get(frame);
if (cert_status & EWK_CERTIFICATE_STATUS_TRUSTED)
url_color = "#6F6";
@@ -1003,23 +979,30 @@ update_url(const char *uri, void *data)
if (!back && !fwd)
before[0] = after[0] = '\0';
- strcat(url_buf, "<font=Monospace font_size=11 color=#FFF>");
- tmp = status_flags(bd);
- strcat(url_buf, tmp);
- free(tmp);
- tmp = strdup_printf("<color=%s>%s<color=#FFF>%s%s%s%s",
+ eina_strbuf_append(url_buf, "<font=Monospace font_size=11 color=#FFF>");
+ /*
+
+ strcat(flags, "[");
+ strcat(flags, bd->proxy_enabled ? "P" : " ");
+ strcat(flags, bd->inspector_enabled ? "I" : " ");
+ // strcat(flags, bd->history_enabled ? "H" : " ");
+ Hist_Item *item = hist_items_get(bd->window->app->history, ewk_view_url_get(bd->view));
+ strcat(flags, (item && hist_item_enabled_get(item)) ? "H" : " ");
+ strcat(flags, bd->cookies_enabled ? "C" : " ");
+
+ */
+ eina_strbuf_append_printf(url_buf, " %2i ", bd->buf_number);
+ eina_strbuf_append_printf(url_buf, "<color=%s>%s<color=#FFF>%s%s%s%s",
url_color, uri, before, back ? "+" : "", fwd ? "-" : "", after);
- strcat(url_buf, tmp);
- free(tmp);
int state_width, window_width;
- evas_object_geometry_get(ad->status_state, NULL, NULL, &state_width, NULL);
- evas_object_geometry_get(ad->win, NULL, NULL, &window_width, NULL);
- elm_label_wrap_width_set(ad->status_url, window_width - state_width);
+ evas_object_geometry_get(wd->status_state, NULL, NULL, &state_width, NULL);
+ evas_object_geometry_get(wd->win, NULL, NULL, &window_width, NULL);
+ elm_label_wrap_width_set(wd->status_url, window_width - state_width);
+
+ elm_object_text_set(wd->status_url, eina_strbuf_string_get(url_buf));
- elm_object_text_set(ad->status_url, url_buf);
- // elm_label_line_wrap_set(ad->status_url, ELM_WRAP_CHAR);
- // elm_label_ellipsis_set(ad->status_url, EINA_TRUE);
+ eina_strbuf_free(url_buf);
}
Eina_Bool
diff --git a/src/utilities.h b/src/utilities.h
@@ -31,9 +31,8 @@ Buffer_Data* buffer_add(const unsigned char, Window_Data *, const char *, Sessio
Window_Data* window_add(App_Data *, Session_Window*);
Eina_Bool echo(const Arg *arg, void *);
void update_state(Window_Data*);
-void update_url(const char *, void *);
+void update_url(const char*, Window_Data*);
void buffer_current_set(Buffer_Data *td);
-char* status_flags(void *data);
Eina_Bool enable_proxy(Buffer_Data *bd);
char *find_uri_for_searchengine(const char *handle);