log: separate termpty logging from the rest.

Make raster the-crying-baby stop complain about log. Now we can have
only termpty logging, with a short format, by using:

{{{
    export EINA_LOG_FILE_DISABLE=1
    export EINA_LOG_LEVELS=termpty:4
    terminology
}}}



SVN revision: 72503
This commit is contained in:
Gustavo Sverzut Barbieri 2012-06-19 19:53:02 +00:00
parent b99a543304
commit e0e7fbfd94
3 changed files with 41 additions and 1 deletions

View File

@ -986,6 +986,8 @@ _smart_del(Evas_Object *obj)
sd->imf = NULL;
ecore_imf_shutdown();
termpty_shutdown();
_parent_sc.del(obj);
evas_object_smart_data_set(obj, NULL);
}
@ -1146,6 +1148,8 @@ termio_add(Evas_Object *parent, Config *config, const char *cmd, int w, int h)
_termio_config_set(obj, config);
termpty_init();
sd->pty = termpty_new(cmd, w, h, config->scrollback);
sd->pty->cb.change.func = _smart_pty_change;
sd->pty->cb.change.data = obj;

View File

@ -10,6 +10,39 @@
#include <string.h>
#include <errno.h>
/* specific log domain to help debug only terminal code parser */
static int _termpty_log_dom = -1;
#undef CRITICAL
#undef ERR
#undef WRN
#undef INF
#undef DBG
#define CRITICAL(...) EINA_LOG_DOM_CRIT(_termpty_log_dom, __VA_ARGS__)
#define ERR(...) EINA_LOG_DOM_ERR(_termpty_log_dom, __VA_ARGS__)
#define WRN(...) EINA_LOG_DOM_WARN(_termpty_log_dom, __VA_ARGS__)
#define INF(...) EINA_LOG_DOM_INFO(_termpty_log_dom, __VA_ARGS__)
#define DBG(...) EINA_LOG_DOM_DBG(_termpty_log_dom, __VA_ARGS__)
void
termpty_init(void)
{
if (_termpty_log_dom >= 0) return;
_termpty_log_dom = eina_log_domain_register("termpty", NULL);
if (_termpty_log_dom < 0)
EINA_LOG_CRIT("could not create log domain 'termpty'.");
}
void
termpty_shutdown(void)
{
if (_termpty_log_dom < 0) return;
eina_log_domain_unregister(_termpty_log_dom);
_termpty_log_dom = -1;
}
static void
_text_clear(Termpty *ty, Termcell *cells, int count, int val, Eina_Bool inherit_att)
{
@ -143,7 +176,7 @@ _text_scroll_rev_test(Termpty *ty)
/* translates VT100 ACS escape codes to Unicode values.
* Based on rxvt-unicode screen.C table.
*/
static int vt100_to_unicode[62] = {
static const int vt100_to_unicode[62] = {
0x2191, 0x2193, 0x2192, 0x2190, 0x2588, 0x259a, 0x2603,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,

View File

@ -99,6 +99,9 @@ struct _Termsave
Termcell cell[1];
};
void termpty_init(void);
void termpty_shutdown(void);
Termpty *termpty_new(const char *cmd, int w, int h, int backscroll);
void termpty_free(Termpty *ty);
Termcell *termpty_cellrow_get(Termpty *ty, int y, int *wret);