diff options
Diffstat (limited to '')
-rw-r--r-- | src/libraries/SledjHamr.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libraries/SledjHamr.c b/src/libraries/SledjHamr.c index 5e1d387..5b1cfd5 100644 --- a/src/libraries/SledjHamr.c +++ b/src/libraries/SledjHamr.c | |||
@@ -13,6 +13,12 @@ struct _conct | |||
13 | Ecore_Event_Handler *add, *data, *del; | 13 | Ecore_Event_Handler *add, *data, *del; |
14 | }; | 14 | }; |
15 | 15 | ||
16 | struct _message | ||
17 | { | ||
18 | Eina_Clist node; | ||
19 | char *message; | ||
20 | }; | ||
21 | |||
16 | 22 | ||
17 | static Eina_Bool _add(void *data, int type, Ecore_Con_Event_Server_Del *ev) | 23 | static Eina_Bool _add(void *data, int type, Ecore_Con_Event_Server_Del *ev) |
18 | { | 24 | { |
@@ -85,6 +91,25 @@ Ecore_Con_Server *reachOut(char *address, int port, void *data, Ecore_Event_Hand | |||
85 | return server; | 91 | return server; |
86 | } | 92 | } |
87 | 93 | ||
94 | void *addMessage(Eina_Clist *list, size_t size, const char *message, ...) | ||
95 | { | ||
96 | va_list args; | ||
97 | char buf[PATH_MAX]; | ||
98 | int length = 0; | ||
99 | struct _message *result; | ||
100 | |||
101 | va_start(args, message); | ||
102 | length += vsprintf(&buf[length], message, args); | ||
103 | va_end(args); | ||
104 | result = calloc(1, size + length + 1); | ||
105 | eina_clist_element_init(&(result->node)); | ||
106 | eina_clist_add_tail(list, &(result->node)); | ||
107 | result->message = ((char *) result) + size; | ||
108 | strcpy(result->message, buf); | ||
109 | |||
110 | return result; | ||
111 | } | ||
112 | |||
88 | void sendBack(Ecore_Con_Client *client, const char *SID, const char *message, ...) | 113 | void sendBack(Ecore_Con_Client *client, const char *SID, const char *message, ...) |
89 | { | 114 | { |
90 | va_list args; | 115 | va_list args; |