From: Enlightenment S. <no-...@en...> - 2012-03-08 20:32:22
|
Log: Eina: use Windows macros Author: caro Date: 2012-03-08 12:32:15 -0800 (Thu, 08 Mar 2012) New Revision: 69069 Trac: http://trac.enlightenment.org/e/changeset/69069 Modified: trunk/eina/src/lib/eina_file_win32.c Modified: trunk/eina/src/lib/eina_file_win32.c =================================================================== --- trunk/eina/src/lib/eina_file_win32.c 2012-03-08 19:52:26 UTC (rev 69068) +++ trunk/eina/src/lib/eina_file_win32.c 2012-03-08 20:32:15 UTC (rev 69069) @@ -1185,9 +1185,9 @@ if (info->type == EINA_FILE_UNKNOWN) { - if (S_ISREG(buf.st_mode)) + if (_S_IFREG(buf.st_mode)) info->type = EINA_FILE_REG; - else if (S_ISDIR(buf.st_mode)) + else if (_S_IFDIR(buf.st_mode)) info->type = EINA_FILE_DIR; else info->type = EINA_FILE_UNKNOWN; |
From: Enlightenment S. <no-...@en...> - 2012-03-19 19:31:36
|
Log: Eina: Fix a previous commit Author: caro Date: 2012-03-19 12:31:29 -0700 (Mon, 19 Mar 2012) New Revision: 69511 Trac: http://trac.enlightenment.org/e/changeset/69511 Modified: trunk/eina/src/lib/eina_file_win32.c Modified: trunk/eina/src/lib/eina_file_win32.c =================================================================== --- trunk/eina/src/lib/eina_file_win32.c 2012-03-19 16:56:28 UTC (rev 69510) +++ trunk/eina/src/lib/eina_file_win32.c 2012-03-19 19:31:29 UTC (rev 69511) @@ -1185,9 +1185,9 @@ if (info->type == EINA_FILE_UNKNOWN) { - if (_S_IFREG(buf.st_mode)) + if (S_ISREG(buf.st_mode)) info->type = EINA_FILE_REG; - else if (_S_IFDIR(buf.st_mode)) + else if (S_ISDIR(buf.st_mode)) info->type = EINA_FILE_DIR; else info->type = EINA_FILE_UNKNOWN; |
From: Enlightenment S. <no-...@en...> - 2012-03-31 06:30:59
|
Log: formatting Author: caro Date: 2012-03-30 23:30:53 -0700 (Fri, 30 Mar 2012) New Revision: 69810 Trac: http://trac.enlightenment.org/e/changeset/69810 Modified: trunk/eina/src/lib/eina_mmap.c Modified: trunk/eina/src/lib/eina_mmap.c =================================================================== --- trunk/eina/src/lib/eina_mmap.c 2012-03-31 06:30:08 UTC (rev 69809) +++ trunk/eina/src/lib/eina_mmap.c 2012-03-31 06:30:53 UTC (rev 69810) @@ -131,7 +131,7 @@ if (_eina_mmap_log_dom < 0) { _eina_mmap_log_dom = eina_log_domain_register("eina_mmap", - EINA_LOG_COLOR_DEFAULT); + EINA_LOG_COLOR_DEFAULT); if (_eina_mmap_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_mmap"); |
From: Enlightenment S. <no-...@en...> - 2012-03-31 06:32:20
|
Log: Eina: add missing API on Windows. Do I need to update ChangeLog and NEWS ? Author: caro Date: 2012-03-30 23:32:11 -0700 (Fri, 30 Mar 2012) New Revision: 69811 Trac: http://trac.enlightenment.org/e/changeset/69811 Modified: trunk/eina/src/lib/eina_file_win32.c Modified: trunk/eina/src/lib/eina_file_win32.c =================================================================== --- trunk/eina/src/lib/eina_file_win32.c 2012-03-31 06:30:53 UTC (rev 69810) +++ trunk/eina/src/lib/eina_file_win32.c 2012-03-31 06:32:11 UTC (rev 69811) @@ -1168,6 +1168,15 @@ eina_lock_release(&file->lock); } +EAPI Eina_Bool +eina_file_map_faulted(Eina_File *file, void *map) +{ + /* + * FIXME: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366801%28v=vs.85%29.aspx + */ + return EINA_FALSE; +} + EAPI int eina_file_statat(void *container __UNUSED__, Eina_File_Direct_Info *info, Eina_Stat *st) { |
From: Enlightenment S. <no-...@en...> - 2012-03-31 07:32:58
|
Log: Eina: more doc Author: caro Date: 2012-03-31 00:32:51 -0700 (Sat, 31 Mar 2012) New Revision: 69813 Trac: http://trac.enlightenment.org/e/changeset/69813 Modified: trunk/eina/src/lib/eina_file_win32.c Modified: trunk/eina/src/lib/eina_file_win32.c =================================================================== --- trunk/eina/src/lib/eina_file_win32.c 2012-03-31 07:01:24 UTC (rev 69812) +++ trunk/eina/src/lib/eina_file_win32.c 2012-03-31 07:32:51 UTC (rev 69813) @@ -1172,7 +1172,34 @@ eina_file_map_faulted(Eina_File *file, void *map) { /* - * FIXME: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366801%28v=vs.85%29.aspx + * FIXME: + * vc++ : http://msdn.microsoft.com/en-us/library/windows/desktop/aa366801%28v=vs.85%29.aspx + * + * mingw-w64 : + * - 32 bits : there is a way to implement __try/__except/__final in C. + * see excpt.h header for 32-bits + * - 64 bits : some inline assembly required for it. See as example our + * startup-code in WinMainCRTStartup() in crtexe.c : +{ + int ret = 255; +#ifdef __SEH__ + asm ("\t.l_startw:\n" + "\t.seh_handler __C_specific_handler, @except\n" + "\t.seh_handlerdata\n" + "\t.long 1\n" + "\t.rva .l_startw, .l_endw, _gnu_exception_handler ,.l_endw\n" + "\t.text" + ); +#endif + mingw_app_type = 1; + __security_init_cookie (); + ret = __tmainCRTStartup (); +#ifdef __SEH__ + asm ("\tnop\n" + "\t.l_endw: nop\n"); +#endif + return ret; +} */ return EINA_FALSE; } |
From: Enlightenment S. <no-...@en...> - 2012-04-20 07:19:16
|
Log: include stdlib.h for atoi and getenv Author: caro Date: 2012-04-20 00:19:08 -0700 (Fri, 20 Apr 2012) New Revision: 70347 Trac: http://trac.enlightenment.org/e/changeset/70347 Modified: trunk/eina/src/lib/eina_cpu.c Modified: trunk/eina/src/lib/eina_cpu.c =================================================================== --- trunk/eina/src/lib/eina_cpu.c 2012-04-20 05:43:06 UTC (rev 70346) +++ trunk/eina/src/lib/eina_cpu.c 2012-04-20 07:19:08 UTC (rev 70347) @@ -42,6 +42,7 @@ # define TH_MAX 8 #endif +#include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> |
From: Enlightenment S. <no-...@en...> - 2012-05-15 05:48:33
|
Log: eina_cpu: use __asm__ instead of asm Author: caro Date: 2012-05-14 22:48:27 -0700 (Mon, 14 May 2012) New Revision: 71092 Trac: http://trac.enlightenment.org/e/changeset/71092 Modified: trunk/eina/src/lib/eina_cpu.c Modified: trunk/eina/src/lib/eina_cpu.c =================================================================== --- trunk/eina/src/lib/eina_cpu.c 2012-05-15 04:55:35 UTC (rev 71091) +++ trunk/eina/src/lib/eina_cpu.c 2012-05-15 05:48:27 UTC (rev 71092) @@ -58,7 +58,7 @@ /* We save ebx and restore it to be PIC compatible */ static inline void _x86_cpuid(int op, int *a, int *b, int *c, int *d) { - asm volatile ( + __asm__ volatile ( #if defined(__x86_64__) "pushq %%rbx \n\t" /* save %ebx */ #else |
From: Enlightenment S. <no-...@en...> - 2012-08-20 06:16:28
|
Log: Eina: formatting Author: caro Date: 2012-08-19 23:16:22 -0700 (Sun, 19 Aug 2012) New Revision: 75440 Trac: http://trac.enlightenment.org/e/changeset/75440 Modified: trunk/eina/src/lib/eina_object.c Modified: trunk/eina/src/lib/eina_object.c =================================================================== --- trunk/eina/src/lib/eina_object.c 2012-08-20 05:22:06 UTC (rev 75439) +++ trunk/eina/src/lib/eina_object.c 2012-08-20 06:16:22 UTC (rev 75440) @@ -385,7 +385,7 @@ /* and now find an empty block */ EINA_INLIST_FOREACH(class->top->available, av) - if (av->end - av->start == class->pool_size) + if ((av->end - av->start) == class->pool_size) break; if (av) |
From: Enlightenment S. <no-...@en...> - 2012-08-20 06:18:27
|
Log: Eina: fix possible mem leak Author: caro Date: 2012-08-19 23:18:21 -0700 (Sun, 19 Aug 2012) New Revision: 75441 Trac: http://trac.enlightenment.org/e/changeset/75441 Modified: trunk/eina/src/lib/eina_simple_xml_parser.c Modified: trunk/eina/src/lib/eina_simple_xml_parser.c =================================================================== --- trunk/eina/src/lib/eina_simple_xml_parser.c 2012-08-20 06:16:22 UTC (rev 75440) +++ trunk/eina/src/lib/eina_simple_xml_parser.c 2012-08-20 06:18:21 UTC (rev 75441) @@ -687,10 +687,12 @@ static Eina_Simple_XML_Node_Data * _eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, Eina_Simple_XML_Node_Type type, const char *content, unsigned length) { - Eina_Simple_XML_Node_Data *n = malloc(sizeof(*n) + length + 1); + Eina_Simple_XML_Node_Data *n; if (!content) return NULL; + n = malloc(sizeof(*n) + length + 1); + if (!n) { ERR("could not allocate memory for node"); |
From: Enlightenment S. <no-...@en...> - 2012-08-22 06:58:09
|
Log: eina: don't rely on the order of the declaration of the variables Author: caro Date: 2012-08-21 23:57:55 -0700 (Tue, 21 Aug 2012) New Revision: 75517 Trac: http://trac.enlightenment.org/e/changeset/75517 Modified: trunk/eina/src/lib/eina_file.c Modified: trunk/eina/src/lib/eina_file.c =================================================================== --- trunk/eina/src/lib/eina_file.c 2012-08-22 06:02:17 UTC (rev 75516) +++ trunk/eina/src/lib/eina_file.c 2012-08-22 06:57:55 UTC (rev 75517) @@ -501,11 +501,15 @@ static char * _eina_file_escape(const char *path, int *length) { - char *result = strdup(path ? path : ""); - char *p = result; - char *q = result; - int len; + char *result; + char *p; + char *q; + size_t len; + result = strdup(path ? path : ""); + p = result; + q = result; + if (!result) return NULL; |
From: Enlightenment S. <no-...@en...> - 2012-08-23 08:26:04
|
Log: eina_file : fix functions to behave with paths containing '/' or '\' on Windows Author: caro Date: 2012-08-23 01:25:53 -0700 (Thu, 23 Aug 2012) New Revision: 75604 Trac: http://trac.enlightenment.org/e/changeset/75604 Modified: trunk/eina/src/lib/eina_file_win32.c Modified: trunk/eina/src/lib/eina_file_win32.c =================================================================== --- trunk/eina/src/lib/eina_file_win32.c 2012-08-23 08:07:56 UTC (rev 75603) +++ trunk/eina/src/lib/eina_file_win32.c 2012-08-23 08:25:53 UTC (rev 75604) @@ -172,19 +172,6 @@ static int _eina_file_log_dom = -1; -static void -_eina_file_win32_backslash_change(char *dir) -{ - char *tmp; - - tmp = dir; - while (*tmp) - { - if (*tmp == '/') *tmp = '\\'; - tmp++; - } -} - static Eina_Bool _eina_file_win32_is_dir(const char *dir) { @@ -228,7 +215,6 @@ memcpy(new_dir, dir, length); memcpy(new_dir + length, "\\*.*", 5); - _eina_file_win32_backslash_change(new_dir); return new_dir; } @@ -507,21 +493,34 @@ static char * _eina_file_win32_escape(const char *path, size_t *length) { - char *result = strdup(path ? path : ""); - char *p = result; - char *q = result; + char *result; + char *p; + char *q; size_t len; + result = strdup(path ? path : ""); if (!result) return NULL; + p = result; + while (*p) + { + if (*p == '\\') *p = '/'; + p++; + } + p = result; + q = result; + + if (!result) + return NULL; + if (length) len = *length; else len = strlen(result); while ((p = strchr(p, '/'))) { // remove double `/' - if (p[1] == '/') + if (p[1] == '/') { memmove(p, p + 1, --len - (p - result)); result[len] = '\0'; @@ -730,7 +729,6 @@ if (!path) return NULL; len = strlen(path); - if (len < 3) return NULL; if (!evil_path_is_absolute(path)) { @@ -740,20 +738,15 @@ if (l > 0) { char *cwd; - DWORD l2; + char *tmp; cwd = alloca(sizeof(char) * (l + 1)); - l2 = GetCurrentDirectory(l + 1, cwd); - if (l2 == l) - { - char *tmp; - - len += l + 2; - tmp = alloca(sizeof (char) * len); - snprintf(tmp, len, "%s/%s", cwd, path); - tmp[len - 1] = '\0'; - result = tmp; - } + GetCurrentDirectory(l + 1, cwd); + len += l + 2; + tmp = alloca(sizeof (char) * len); + snprintf(tmp, len, "%s\\%s", cwd, path); + tmp[len - 1] = '\0'; + result = tmp; } } @@ -839,17 +832,28 @@ if (!ea) return NULL; - for (current = strchr(path, '\\'); - current; - path = current + 1, current = strchr(path, '\\')) + current = path; + while (*current) { - length = current - path; + if ((*current == '\\') || (*current == '/')) + { + if (((*current == '\\') && (current[1] == '\\')) || + ((*current == '/') && (current[1] == '/'))) + { + *current = '\0'; + goto next_char; + } - if (length <= 0) - continue; + length = current - path; + if (length <= 0) + goto next_char; - eina_array_push(ea, path); - *current = '\0'; + eina_array_push(ea, path); + *current = '\0'; + path = current + 1; + } + next_char: + current++; } if (*path != '\0') @@ -891,11 +895,10 @@ goto free_it; memcpy(it->dir, dir, length + 1); - if (dir[length - 1] != '\\') + if ((dir[length - 1] != '\\') && (dir[length - 1] != '/')) it->length = length; else it->length = length - 1; - _eina_file_win32_backslash_change(it->dir); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_ls_iterator_next); @@ -944,17 +947,15 @@ memcpy(it->dir, dir, length + 1); it->length = length; - _eina_file_win32_backslash_change(it->dir); memcpy(it->info.path, dir, length); - if (dir[length - 1] == '\\') + if ((dir[length - 1] == '\\') || (dir[length - 1] == '/')) it->info.name_start = length; else { it->info.path[length] = '\\'; it->info.name_start = length + 1; } - _eina_file_win32_backslash_change(it->info.path); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_direct_ls_iterator_next); |