Commit 9345780d authored by Mathieu L Bouchard's avatar Mathieu L Bouchard
Browse files

add colours for pd -d 1 and pd -d 2 and also auto-disable all colouring when...

add colours for pd -d 1 and pd -d 2 and also auto-disable all colouring when redirecting to a file or pipe
parent c61bfc94
......@@ -14,6 +14,8 @@ that didn't really belong anywhere. */
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#else // if isatty exists outside unistd, please add another #ifdef
static int isatty(int fd) {return 0;}
#endif
#ifndef _WIN32
......@@ -80,6 +82,8 @@ typedef int socklen_t;
#define LOCALHOST "localhost"
#endif
static int stderr_isatty;
#include <execinfo.h>
typedef struct _fdpoll
......@@ -452,10 +456,11 @@ static int socketreceiver_doread(t_socketreceiver *x)
{
intail = (indx+1)&(INBUFSIZE-1);
binbuf_text(inbinbuf, messbuf, bp - messbuf);
if (sys_debuglevel & DEBUG_MESSDOWN)
{
int res = write(2, messbuf, bp - messbuf);
res = write(2, "\n", 1);
if (sys_debuglevel & DEBUG_MESSDOWN) {
if (stderr_isatty)
fprintf(stderr,"<- \e[0;1;36m%.*s\e[0m\n", bp - messbuf, messbuf);
else
fprintf(stderr,"<- %.*s\n", bp - messbuf, messbuf);
}
x->sr_inhead = inhead;
x->sr_intail = intail;
......@@ -710,7 +715,13 @@ void sys_vvgui(const char *fmt, va_list ap) {
}
if (sys_debuglevel & DEBUG_MESSUP) {
//blargh();
fprintf(stderr, "%s", sys_guibuf + sys_guibufhead);
int begin = lastend=='\n' || lastend=='\r' || lastend==-1;
if (stderr_isatty)
fprintf(stderr, "%s\e[0;1;35m%s\e[0m",
begin ? "-> " : "", sys_guibuf + sys_guibufhead);
else
fprintf(stderr, "%s%s",
begin ? "-> " : "", sys_guibuf + sys_guibufhead);
}
sys_guibufhead += msglen;
sys_bytessincelastping += msglen;
......@@ -931,6 +942,7 @@ int sys_startgui(const char *guidir)
int len = sizeof(server);
int ntry = 0, portno = FIRSTPORTNUM;
int xsock = -1;
stderr_isatty = isatty(2);
#ifdef MSW
short version = MAKEWORD(2, 0);
WSADATA nobby;
......
......@@ -17,6 +17,8 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#else // if isatty exists outside unistd, please add another #ifdef
static int isatty(int fd) {return 0;}
#endif
#ifndef MSW
......@@ -64,6 +66,7 @@
void tcl_mess(char *s);
static Tcl_Interp *tk_pdinterp;
static int pd_portno = 0;
static int stderr_isatty;
/***************** the socket setup code ********************/
......@@ -558,8 +561,8 @@ void tcl_mess(char *s)
int result;
#ifdef DEBUG_TCL
char catch_s[strlen(s)+1];
sprintf(catch_s, "%s", s);
char *catch_s = s;
//char catch_s[strlen(s)+666]; sprintf(catch_s, "set errorInfo \"\"; if {[catch {%s}]} {puts \"\\033\\[0;1;33m$errorInfo\\033\\[0m\"}", s);
#else
char catch_s[strlen(s)+11];
sprintf(catch_s, "catch { %s }", s);
......@@ -571,9 +574,13 @@ void tcl_mess(char *s)
Tcl_DecrRefCount(messageObjPtr);
if (result != TCL_OK)
{
if (tk_pdinterp) printf("in sys_gui \e[0;1;36m%s\e[31m%s\e[0m\n",
s, Tcl_GetStringResult(tk_pdinterp));
else printf("no error\n");
if (tk_pdinterp) {
const char *t = Tcl_GetStringResult(tk_pdinterp);
if (stderr_isatty)
printf("in sys_gui \e[0;1;33m%s\e[31m%s\e[0m\n", s, t);
else
printf("in sys_gui %s%s\n", s, t);
} else printf("no error\n");
}
}
......@@ -653,6 +660,7 @@ void pdgui_setname(char *s)
int Pdtcl_Init(Tcl_Interp *interp)
{
stderr_isatty = isatty(2);
const char *argv = Tcl_GetVar(interp, "argv", 0);
int portno = 0, i;
if (argv)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment