? bindings/python/geditcommands.c ? gedit/gedit-enum-types.c ? gedit/gedit-enum-types.h ? help/sv/.xml2po.mo ? help/sv/gedit.xml ? help/sv/legal.xml Index: gedit/gedit-languages-manager.c =================================================================== RCS file: /cvs/gnome/gedit/gedit/gedit-languages-manager.c,v retrieving revision 1.12 diff -u -p -r1.12 gedit-languages-manager.c --- gedit/gedit-languages-manager.c 23 Aug 2006 13:42:01 -0000 1.12 +++ gedit/gedit-languages-manager.c 23 Aug 2006 15:09:22 -0000 @@ -404,6 +404,7 @@ gedit_languages_manager_get_language_fro { const GSList *languages; GtkSourceLanguage *lang; + GtkSourceLanguage *parent = NULL; g_return_val_if_fail (mime_type != NULL, NULL); @@ -432,9 +433,26 @@ gedit_languages_manager_get_language_fro GnomeVFSMimeEquivalence res; res = gnome_vfs_mime_type_get_equivalence (mime_type, (const gchar*)tmp->data); - - if (res != GNOME_VFS_MIME_UNRELATED) + + if (res == GNOME_VFS_MIME_IDENTICAL) + { + /* If the mime-type of lang is identical to "mime-type" then + returns lang */ + gedit_debug_message (DEBUG_DOCUMENT, + "%s is indentical to %s\n", (const gchar*)tmp->data, mime_type); + break; + } + else if ((res == GNOME_VFS_MIME_PARENT) && (parent == NULL)) + { + /* If the mime-type of lang is a parent of "mime-type" then + remembers it. We will return it if we don't find + an exact match. The first "parent" wins */ + parent = lang; + + gedit_debug_message (DEBUG_DOCUMENT, + "%s is a parent of %s\n", (const gchar*)tmp->data, mime_type); + } tmp = g_slist_next (tmp); } @@ -451,6 +469,9 @@ gedit_languages_manager_get_language_fro languages = g_slist_next (languages); } - return NULL; + if (parent != NULL) + add_language_to_cache (lm, mime_type, parent); + + return parent; }