All pastes #146361 Raw Edit

Something

public text v1 · immutable
#146361 ·published 2006-08-23 15:10 UTC
rendered paste body
? 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;
 }