diff options
author | David Walter Seikel | 2014-08-14 08:32:50 +1000 |
---|---|---|
committer | David Walter Seikel | 2014-08-14 08:32:50 +1000 |
commit | 9e8f8dbd9c52d1da132d618573d87650e0a0f7f9 (patch) | |
tree | c9d76f4a95b3ed6b0d8174be2d981ec04cc570a9 /src/libraries | |
parent | Considerable cleanup of the top level compiling code. (diff) | |
download | SledjHamr-9e8f8dbd9c52d1da132d618573d87650e0a0f7f9.zip SledjHamr-9e8f8dbd9c52d1da132d618573d87650e0a0f7f9.tar.gz SledjHamr-9e8f8dbd9c52d1da132d618573d87650e0a0f7f9.tar.bz2 SledjHamr-9e8f8dbd9c52d1da132d618573d87650e0a0f7f9.tar.xz |
Only collect the errors and warnings during a compile, output them in a batch at the end.
Diffstat (limited to 'src/libraries')
-rw-r--r-- | src/libraries/Runnr.c | 4 | ||||
-rw-r--r-- | src/libraries/Runnr.h | 8 | ||||
-rw-r--r-- | src/libraries/SledjHamr.c | 25 | ||||
-rw-r--r-- | src/libraries/SledjHamr.h | 1 |
4 files changed, 35 insertions, 3 deletions
diff --git a/src/libraries/Runnr.c b/src/libraries/Runnr.c index 1f10d33..5fecfdf 100644 --- a/src/libraries/Runnr.c +++ b/src/libraries/Runnr.c | |||
@@ -421,9 +421,6 @@ static void _compileEnd(void *data, Ecore_Thread *thread) | |||
421 | free(compiler->SID); | 421 | free(compiler->SID); |
422 | } | 422 | } |
423 | 423 | ||
424 | // TODO - Should pass error messages back through a linked list. | ||
425 | // To eventually get passed back to the calling app via compiler->errors and compiler->warnings. | ||
426 | // Will need ageneric "add this formatted string to a linked list" function, in SledjHamr.c | ||
427 | static void _compileThread(void *data, Ecore_Thread *thread) | 424 | static void _compileThread(void *data, Ecore_Thread *thread) |
428 | { | 425 | { |
429 | LuaCompiler *compiler = data; | 426 | LuaCompiler *compiler = data; |
@@ -487,6 +484,7 @@ static void _compileThread(void *data, Ecore_Thread *thread) | |||
487 | } | 484 | } |
488 | } | 485 | } |
489 | 486 | ||
487 | // TODO - Threaded version is consistantly about half the speed. WTF? | ||
490 | void compileScript(LuaCompiler *compiler, int threadIt) | 488 | void compileScript(LuaCompiler *compiler, int threadIt) |
491 | { | 489 | { |
492 | if (threadIt) | 490 | if (threadIt) |
diff --git a/src/libraries/Runnr.h b/src/libraries/Runnr.h index 63e0afc..a2098d9 100644 --- a/src/libraries/Runnr.h +++ b/src/libraries/Runnr.h | |||
@@ -30,6 +30,13 @@ typedef enum | |||
30 | typedef struct _LuaCompile LuaCompile; | 30 | typedef struct _LuaCompile LuaCompile; |
31 | typedef void (* compileCb)(LuaCompile *compiler); | 31 | typedef void (* compileCb)(LuaCompile *compiler); |
32 | 32 | ||
33 | typedef struct _compileMessage | ||
34 | { | ||
35 | Eina_Clist node; | ||
36 | char *message; | ||
37 | int type, column, line; | ||
38 | } compileMessage; | ||
39 | |||
33 | typedef struct _LuaCompile | 40 | typedef struct _LuaCompile |
34 | { | 41 | { |
35 | char *file, *SID, *luaName; | 42 | char *file, *SID, *luaName; |
@@ -38,6 +45,7 @@ typedef struct _LuaCompile | |||
38 | compileCb parser; | 45 | compileCb parser; |
39 | compileCb cb; | 46 | compileCb cb; |
40 | boolean doConstants; | 47 | boolean doConstants; |
48 | Eina_Clist messages; // HEAD for error and warning messages. | ||
41 | } LuaCompiler; | 49 | } LuaCompiler; |
42 | 50 | ||
43 | typedef struct _script script; | 51 | typedef struct _script script; |
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; |
diff --git a/src/libraries/SledjHamr.h b/src/libraries/SledjHamr.h index 7ce32b9..07018a1 100644 --- a/src/libraries/SledjHamr.h +++ b/src/libraries/SledjHamr.h | |||
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | 10 | ||
11 | Ecore_Con_Server *reachOut(char *address, int port, void *data, Ecore_Event_Handler_Cb _add, Ecore_Event_Handler_Cb _data, Ecore_Event_Handler_Cb _del); | 11 | Ecore_Con_Server *reachOut(char *address, int port, void *data, Ecore_Event_Handler_Cb _add, Ecore_Event_Handler_Cb _data, Ecore_Event_Handler_Cb _del); |
12 | void *addMessage(Eina_Clist *list, size_t size, const char *message, ...); | ||
12 | void sendBack(Ecore_Con_Client *client, const char *SID, const char *message, ...); | 13 | void sendBack(Ecore_Con_Client *client, const char *SID, const char *message, ...); |
13 | void sendForth(Ecore_Con_Server *server, const char *SID, const char *message, ...); | 14 | void sendForth(Ecore_Con_Server *server, const char *SID, const char *message, ...); |
14 | 15 | ||