#include "m_pd.h"
#include "s_stuff.h"
#include <stdarg.h>
#include <string.h>
#define GUI_VMESS__END …
#define GUI_VMESS__IGNORE …
#define GUI_VMESS__FLOAT …
#define GUI_VMESS__INT …
#define GUI_VMESS__STRING …
#define GUI_VMESS__PASCALSTRING …
#define GUI_VMESS__RAWSTRING …
#define GUI_VMESS__COLOR …
#define GUI_VMESS__POINTER …
#define GUI_VMESS__OBJECT …
#define GUI_VMESS__MESSAGE …
#define GUI_VMESS__ATOMS …
#define GUI_VMESS__ATOMARRAY …
#define GUI_VMESS__FLOATARRAY …
#define GUI_VMESS__FLOATWORDS …
#define GUI_VMESS__FLOATWORDARRAY …
#define GUI_VMESS__STRINGARRAY …
#define GUI_VMESS__RAWSTRINGARRAY …
#define GUI_VMESS__CANVAS …
#define GUI_VMESS__CANVASARRAY …
#define GUI_VMESS__WINDOW …
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#elif defined _MSC_VER
#pragma warning( disable : 4996 )
#endif
static PERTHREAD char* s_escbuffer = …;
static PERTHREAD size_t s_esclength = …;
#ifndef GUI_ALLOCCHUNK
#define GUI_ALLOCCHUNK …
#endif
static char*get_escapebuffer(const char*s, int size)
{ … }
static const char* str_escape(const char*s, int size)
{ … }
t_val;
#ifdef DEBUGME
static void print_val(t_val v) {
char str[80];
dprintf(2, "value[%c] ", v.type);
switch (v.type) {
case GUI_VMESS__ATOMS:
atom_string(v.value.p, str, sizeof(str));
dprintf(2, "(atom)%s", str);
break;
case GUI_VMESS__FLOAT:
dprintf(2, "(float)%f", v.value.d);
break;
case GUI_VMESS__INT:
dprintf(2, "(int)%d", v.value.i);
break;
case GUI_VMESS__COLOR:
dprintf(2, "(color)#%06x", v.value.i & 0xFFFFFF);
break;
case GUI_VMESS__STRING:
dprintf(2, "(string)\"%s\"", v.value.p);
break;
case GUI_VMESS__PASCALSTRING:
dprintf(2, "(pascalstring)\"%.*s\"", v.size, v.value.p);
break;
case GUI_VMESS__RAWSTRING:
dprintf(2, "(rawstring)\"%s\"", v.value.p);
break;
case GUI_VMESS__WINDOW:
case GUI_VMESS__CANVAS:
dprintf(2, "(glist)%p", v.value.p);
break;
case GUI_VMESS__ATOMARRAY:
case GUI_VMESS__FLOATARRAY:
case GUI_VMESS__FLOATWORDS:
case GUI_VMESS__FLOATWORDARRAY:
case GUI_VMESS__STRINGARRAY:
case GUI_VMESS__RAWSTRINGARRAY:
case GUI_VMESS__POINTER:
case GUI_VMESS__OBJECT:
case GUI_VMESS__CANVASARRAY:
dprintf(2, "%dx @%p", v.size, v.value.p);
break;
case GUI_VMESS__MESSAGE:
dprintf(2, "(message)%s %d@%p", v.string, v.size, v.value.p);
break;
default:
break;
}
dprintf(2, "\n");
}
#else
static void print_val(t_val v) { … }
#ifdef dprintf
#undef dprintf
#endif
int dprintf(int fd, const char* format, ...) { … }
#endif
static void sendatoms(int argc, t_atom*argv, int raw) { … }
static int addmess(const t_val *v)
{ … }
static int va2value(const char fmt, va_list *args, t_val*v) { … }
void pdgui_vamess(const char* message, const char* format, va_list args_)
{ … }
void pdgui_endmess(void)
{ … }
void pdgui_vmess(const char* message, const char* format, ...)
{ … }