viking

webkit based web browser for Enlightenment
Log | Files | Refs | LICENSE

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:
Msrc/commands.c | 4----
Msrc/utilities.c | 77++++++++++++++++++++++++++++++-----------------------------------------------
Msrc/utilities.h | 3+--
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);