billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=f13d9ad1116bea50fa98c34a8e9c1e85b09e14f6
commit f13d9ad1116bea50fa98c34a8e9c1e85b09e14f6 Author: Boris Faure <bill...@gmail.com> Date: Mon Feb 23 22:20:18 2015 +0100 fix compilation on solaris --- src/bin/termpty.h | 4 ++-- src/bin/termptyesc.c | 29 ++++++++++++++++------------- src/bin/termptysave.c | 6 +++++- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/bin/termpty.h b/src/bin/termpty.h index e5452d8..057724f 100644 --- a/src/bin/termpty.h +++ b/src/bin/termpty.h @@ -128,8 +128,8 @@ struct _Termpty Termcell *screen, *screen2; Termsave **back; unsigned char oldbuf[4]; - int *buf; - int buflen; + Eina_Unicode *buf; + size_t buflen; int w, h; int fd, slavefd; int circular_offset; diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c index 7617d6e..56cc215 100644 --- a/src/bin/termptyesc.c +++ b/src/bin/termptyesc.c @@ -656,7 +656,7 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, Eina_Unicode *ce) if (cc == ce) return 0; *b = 0; b = buf; - DBG(" CSI: '%c' args '%s'", *cc, (char *) buf); + DBG(" CSI: '%c' args '%s'", (int) *cc, (char *) buf); switch (*cc) { case 'm': // color set @@ -668,7 +668,7 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, Eina_Unicode *ce) DBG("insert %d blank chars", arg); { int pi = ty->state.insert; - int blank[1] = { ' ' }; + Eina_Unicode blank[1] = { ' ' }; int cx = ty->state.cx; ty->state.wrapnext = 0; @@ -1035,11 +1035,12 @@ unhandled: for (i = 0; c + i <= cc && i < 100; i++) { if ((c[i] < ' ') || (c[i] >= 0x7f)) - eina_strbuf_append_printf(bf, "\033[35m%08x\033[0m", c[i]); + eina_strbuf_append_printf(bf, "\033[35m%08x\033[0m", + (unsigned int) c[i]); else eina_strbuf_append_char(bf, c[i]); } - ERR("unhandled CSI '%c': %s", *cc, eina_strbuf_string_get(bf)); + ERR("unhandled CSI '%c': %s", (int) *cc, eina_strbuf_string_get(bf)); eina_strbuf_free(bf); } cc++; @@ -1478,7 +1479,8 @@ _handle_esc_dcs(Termpty *ty EINA_UNUSED, const Eina_Unicode *c, const Eina_Unico /* Request status string */ if (len > 1 && buf[1] != 'q') { - ERR("invalid/unhandled dsc esc '$%c' (expected '$q')", buf[1]); + ERR("invalid/unhandled dsc esc '$%c' (expected '$q')", + (int) buf[1]); goto end; } if (len < 4) @@ -1499,7 +1501,7 @@ _handle_esc_dcs(Termpty *ty EINA_UNUSED, const Eina_Unicode *c, const Eina_Unico } else { - ERR("invalid/unhandled dsc esc '$q\"%c'", buf[3]); + ERR("invalid/unhandled dsc esc '$q\"%c'", (int) buf[3]); goto end; } break; @@ -1508,14 +1510,15 @@ _handle_esc_dcs(Termpty *ty EINA_UNUSED, const Eina_Unicode *c, const Eina_Unico case 'r': /* DECSTBM */ /* TODO: */ default: - ERR("unhandled dsc request status string '$q%c'", buf[2]); + ERR("unhandled dsc request status string '$q%c'", + (int) buf[2]); goto end; } /* TODO */ break; default: // many others - ERR("Unhandled DCS escape '%c'", buf[0]); + ERR("Unhandled DCS escape '%c'", (int) buf[0]); break; } end: @@ -1528,7 +1531,7 @@ _handle_esc(Termpty *ty, const Eina_Unicode *c, Eina_Unicode *ce) int len = ce - c; if (len < 1) return 0; - DBG("ESC: '%c'", c[0]); + DBG("ESC: '%c'", (int) c[0]); switch (c[0]) { case '[': @@ -1651,7 +1654,7 @@ _handle_esc(Termpty *ty, const Eina_Unicode *c, Eina_Unicode *ce) return 1; */ default: - ERR("Unhandled escape '%c' (0x%02x)", c[0], c[0]); + ERR("Unhandled escape '%c' (0x%02x)", (int) c[0], (unsigned int) c[0]); return 1; } return 0; @@ -1770,7 +1773,7 @@ termpty_handle_seq(Termpty *ty, Eina_Unicode *c, Eina_Unicode *ce) else if (c[0] == 0x7f) // DEL { ty->state.had_cr = 0; - ERR("Unhandled char 0x%02x [DEL]", c[0]); + ERR("Unhandled char 0x%02x [DEL]", (unsigned int) c[0]); return 1; } else if (c[0] == 0x9b) // ANSI ESC!!! @@ -1822,11 +1825,11 @@ termpty_handle_seq(Termpty *ty, Eina_Unicode *c, Eina_Unicode *ce) { ty->state.had_cr = 0; } - cc = (int *)c; + cc = (Eina_Unicode *)c; DBG("txt: ["); while ((cc < ce) && (*cc >= 0x20) && (*cc != 0x7f)) { - DBG("%c", *cc); + DBG("%c", (int) *cc); cc++; len++; } diff --git a/src/bin/termptysave.c b/src/bin/termptysave.c index dada3f0..686ea0f 100644 --- a/src/bin/termptysave.c +++ b/src/bin/termptysave.c @@ -98,7 +98,7 @@ _alloc_new(int size, unsigned char gen) // so allocate a new block sz = TS_MMAP_SIZE; // get mmaped anonymous memory so when freed it goes away from the system - ptr = mmap(NULL, sz, PROT_READ | PROT_WRITE, + ptr = (unsigned char*) mmap(NULL, sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (ptr == MAP_FAILED) { ERR("Cannot allocate more memory with mmap MAP_ANONYMOUS"); @@ -159,7 +159,11 @@ _ts_free(void *ptr) al->allocated -= sz; if (al->count > 0) return; alloc[al->slot] = NULL; +#if defined (__sun) || defined (__sun__) + munmap((caddr_t)al, al->size); +#else munmap(al, al->size); +#endif } static void --