billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=85edd0407c0359871ee6bb855fc206a9c3f4ad74
commit 85edd0407c0359871ee6bb855fc206a9c3f4ad74 Author: Thibaut Broggi <brogg...@epitech.eu> Date: Thu Feb 26 23:09:54 2015 +0100 tyls: remove leaks and fix write() checking leaks were due to a "return 0" in main() removing it, so that the exit functions from ecore can run properly changing the way write() was checked, now we check if all chars are printed --- src/bin/tyls.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/bin/tyls.c b/src/bin/tyls.c index d145fd9..048ca7d 100644 --- a/src/bin/tyls.c +++ b/src/bin/tyls.c @@ -51,9 +51,9 @@ size_print(char *buf, int bufsz, char *sz, unsigned long long size) while (prefixes[i]) { - if (size < (unsigned long long)pow(1024LL, i + 1) || !prefixes[i + 1]) + if (size < (1024LL << 10 * i) || !prefixes[i]) { - snprintf(buf, bufsz, "%4lld", size / (unsigned long long)pow(1024LL, i)); + snprintf(buf, bufsz, "%4lld", size / (1024 << 10 * (i - 1))); *sz = prefixes[i]; return; } @@ -728,6 +728,7 @@ int main(int argc, char **argv) { char buf[64]; + char *path; Eina_List *dirs = NULL, *l; Tyls_Options options = {SMALL, EINA_FALSE}; @@ -757,13 +758,15 @@ main(int argc, char **argv) if (ee) { int i, cw, ch; + int len; char *rp; evas = ecore_evas_get(ee); echo_off(); snprintf(buf, sizeof(buf), "%c}qs", 0x1b); - if (write(0, buf, strlen(buf) + 1) < 0) perror("write"); - if (scanf("%i;%i;%i;%i", &tw, &th, &cw, &ch) != 4 + len = strlen(buf); + if (write(0, buf, len + 1) < (signed)len + 1) perror("write"); + if ((scanf("%i;%i;%i;%i", &tw, &th, &cw, &ch) != 4) || (tw <= 0) || (th <= 0) || (cw <= 1) || (ch <= 1)) { echo_on(); @@ -796,8 +799,7 @@ main(int argc, char **argv) { dirs = eina_list_append(dirs, "./"); } - char *path; - EINA_LIST_FOREACH(dirs, l, path) + EINA_LIST_FREE(dirs, path) { if ((rp = ecore_file_realpath(path)) && ecore_file_is_dir(rp)) @@ -806,9 +808,7 @@ main(int argc, char **argv) free(rp); } } - eina_list_free(dirs); fflush(stdout); - return 0; // ecore_main_loop_begin(); ecore_evas_free(ee); } --