viking

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

commit 5b05c8b9f59645f894040e9bb39cabaeb0d7107b
parent fa19943348cf94a88774b2a7789242a070f761ec
Author: Kyle Milz <kmilz@ucalgary.ca>
Date:   Sat, 13 Oct 2012 22:30:49 -0600

clean up uri_sanitize function

Diffstat:
Msrc/main.c | 72+++++++++++++++++++++++++++++++++++-------------------------------------
1 file changed, 35 insertions(+), 37 deletions(-)

diff --git a/src/main.c b/src/main.c @@ -23,7 +23,7 @@ /* functions */ EAPI_MAIN int elm_main(int argc, char *argv[]); -char *uri_sanitize(const char *); +const char *uri_sanitize(const char *); static Eina_Bool session_save_cb(void *data) @@ -98,42 +98,39 @@ static const Ecore_Getopt options = { } }; -char* +const char* uri_sanitize(const char *uri) { - char *fixed_uri; - char *schema; - char *tmp; - - if (!uri || !*uri) return NULL; - - tmp = strstr(uri, "://"); - if (!tmp || (tmp == uri) || (tmp > (uri + 15))) - { - char *new_uri = NULL; - if (ecore_file_exists(uri)) - { - schema = "file"; - new_uri = ecore_file_realpath(uri); - } - else - schema = "http"; - - if (asprintf(&fixed_uri, "%s://%s", schema, new_uri ? new_uri : uri) > 0) - { - free(new_uri); - return fixed_uri; - } - free(new_uri); - } - else - { - char search_uri[4096]; - strcat(search_uri, "http://google.com/search?q="); - return strdup(strcat(search_uri, uri)); - } - - return NULL; + char *fixed_uri; + char *schema; + char *tmp; + + if (!uri || !*uri) return NULL; + + tmp = strstr(uri, "://"); + if (!tmp || (tmp == uri) || (tmp > (uri + 15))) { + char *new_uri = NULL; + if (ecore_file_exists(uri)) { + schema = "file"; + new_uri = ecore_file_realpath(uri); + } + else + schema = "http"; + + if (asprintf(&fixed_uri, "%s://%s", schema, new_uri ? new_uri : uri) > 0) { + free(new_uri); + return fixed_uri; + } + free(new_uri); + } + else { + Eina_Strbuf *search_url = eina_strbuf_new(); + eina_strbuf_append(search_url, "http://google.com/search?q="); + eina_strbuf_append(search_url, uri); + return eina_strbuf_string_get(search_url); + } + + return NULL; } static Eina_Bool @@ -234,7 +231,8 @@ EAPI_MAIN int elm_main(int argc, char *argv[]) { App_Data *ad; - char *basename, *uri = NULL, path[PATH_MAX]; + char *basename, path[PATH_MAX]; + const char *uri = NULL; Config *config; Hist *hist; Session *session; @@ -406,7 +404,7 @@ elm_main(int argc, char *argv[]) eet_shutdown(); ecore_con_shutdown(); - free(uri); + // free(uri); return 0; }