SF.net SVN: geany:[4912] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sat May 15 11:35:26 UTC 2010
Revision: 4912
http://geany.svn.sourceforge.net/geany/?rev=4912&view=rev
Author: eht16
Date: 2010-05-15 11:35:26 +0000 (Sat, 15 May 2010)
Log Message:
-----------
Sort file filters for the native Windows file open dialog by name.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/win32.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-05-15 10:25:13 UTC (rev 4911)
+++ trunk/ChangeLog 2010-05-15 11:35:26 UTC (rev 4912)
@@ -1,3 +1,9 @@
+2010-05-15 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/win32.c:
+ Sort file filters for the native Windows file open dialog by name.
+
+
2010-05-15 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
* src/support.h:
Modified: trunk/src/win32.c
===================================================================
--- trunk/src/win32.c 2010-05-15 10:25:13 UTC (rev 4911)
+++ trunk/src/win32.c 2010-05-15 11:35:26 UTC (rev 4912)
@@ -85,20 +85,17 @@
{
gchar *string;
guint i, j, len;
- static wchar_t title[1024];
+ static wchar_t title[4096];
GString *str = g_string_sized_new(100);
GString *all_patterns = g_string_sized_new(100);
+ GSList *node;
gchar *tmp;
- for (i = 0; i < filetypes_array->len; i++)
+ /* create meta file filter "All files" */
+ g_string_append_printf(str, "%s\t*\t", _("All files"));
+ /* create meta file filter "All Source" (skip GEANY_FILETYPES_NONE) */
+ for (i = GEANY_FILETYPES_NONE + 1; i < filetypes_array->len; i++)
{
- tmp = g_strjoinv(";", filetypes[i]->pattern);
- g_string_append_printf(str, "%s\t%s\t", filetypes[i]->title, tmp);
- g_free(tmp);
- }
- /* create meta file filter "All Source" */
- for (i = 0; i < filetypes_array->len; i++)
- {
for (j = 0; filetypes[i]->pattern[j] != NULL; j++)
{
g_string_append(all_patterns, filetypes[i]->pattern[j]);
@@ -107,7 +104,17 @@
}
g_string_append_printf(str, "%s\t%s\t", _("All Source"), all_patterns->str);
g_string_free(all_patterns, TRUE);
+ /* add 'usual' filetypes */
+ foreach_slist(node, filetypes_by_title)
+ {
+ GeanyFiletype *ft = node->data;
+ if (G_UNLIKELY(ft->id == GEANY_FILETYPES_NONE))
+ continue;
+ tmp = g_strjoinv(";", ft->pattern);
+ g_string_append_printf(str, "%s\t%s\t", ft->title, tmp);
+ g_free(tmp);
+ }
g_string_append_c(str, '\t'); /* the final \0 byte to mark the end of the string */
string = str->str;
g_string_free(str, FALSE);
@@ -116,7 +123,8 @@
len = strlen(string);
for (i = 0; i < len; i++)
{
- if (string[i] == '\t') string[i] = '\0';
+ if (string[i] == '\t')
+ string[i] = '\0';
}
MultiByteToWideChar(CP_UTF8, 0, string, len, title, sizeof(title));
g_free(string);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list