Revision: 1460 http://svn.sourceforge.net/geany/?rev=1460&view=rev Author: ntrel Date: 2007-04-18 05:12:51 -0700 (Wed, 18 Apr 2007)
Log Message: ----------- Split filetypes_get_from_filename() into filetypes_detect_from_file() and filetypes_detect_from_filename().
Modified Paths: -------------- trunk/ChangeLog trunk/src/document.c trunk/src/filetypes.c trunk/src/filetypes.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-04-18 12:01:06 UTC (rev 1459) +++ trunk/ChangeLog 2007-04-18 12:12:51 UTC (rev 1460) @@ -2,6 +2,9 @@
* doc/geany.docbook: Update Search section: escape sequences, Find All, Mark, Replace All. + * src/filetypes.c, src/filetypes.h, src/document.c: + Split filetypes_get_from_filename() into filetypes_detect_from_file() + and filetypes_detect_from_filename().
2007-04-16 Enrico Tröger enrico.troeger@uvena.de
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2007-04-18 12:01:06 UTC (rev 1459) +++ trunk/src/document.c 2007-04-18 12:12:51 UTC (rev 1460) @@ -439,7 +439,7 @@
//document_set_filetype(idx, (ft == NULL) ? filetypes[GEANY_FILETYPES_ALL] : ft); if (ft == NULL && filename != NULL) // guess the filetype from the filename if one is given - ft = filetypes_get_from_filename(idx); + ft = filetypes_detect_from_file(idx);
document_set_filetype(idx, ft); // also clears taglist if (ft == NULL) filetypes[GEANY_FILETYPES_ALL]->style_func_ptr(doc_list[idx].sci); @@ -807,7 +807,7 @@ g_signal_connect((GtkWidget*) doc_list[idx].sci, "sci-notify", G_CALLBACK(on_editor_notification), GINT_TO_POINTER(idx));
- use_ft = (ft != NULL) ? ft : filetypes_get_from_filename(idx); + use_ft = (ft != NULL) ? ft : filetypes_detect_from_file(idx); } else { // reloading @@ -1058,7 +1058,7 @@
if (doc_list[idx].file_type == NULL || doc_list[idx].file_type->id == GEANY_FILETYPES_ALL) { - doc_list[idx].file_type = filetypes_get_from_filename(idx); + doc_list[idx].file_type = filetypes_detect_from_file(idx); filetypes_select_radio_item(doc_list[idx].file_type); } document_set_filetype(idx, doc_list[idx].file_type);
Modified: trunk/src/filetypes.c =================================================================== --- trunk/src/filetypes.c 2007-04-18 12:01:06 UTC (rev 1459) +++ trunk/src/filetypes.c 2007-04-18 12:12:51 UTC (rev 1460) @@ -681,14 +681,10 @@ }
-/* simple filetype selection based on the filename extension */ -filetype *filetypes_get_from_filename(gint idx) +/* Detect the filetype for document idx, checking for a shebang, then filename extension. */ +filetype *filetypes_detect_from_file(gint idx) { - GPatternSpec *pattern; filetype *ft; - const gchar *utf8_filename; - gchar *base_filename; - gint i, j;
if (! DOC_IDX_VALID(idx)) return filetypes[GEANY_FILETYPES_ALL]; @@ -699,9 +695,19 @@
if (doc_list[idx].file_name == NULL) return filetypes[GEANY_FILETYPES_ALL]; - else - utf8_filename = doc_list[idx].file_name;
+ return filetypes_detect_from_filename(doc_list[idx].file_name); +} + + +/* Detect filetype based on the filename extension. + * utf8_filename can include the full path. */ +filetype *filetypes_detect_from_filename(const gchar *utf8_filename) +{ + GPatternSpec *pattern; + gchar *base_filename; + gint i, j; + // to match against the basename of the file(because of Makefile*) base_filename = g_path_get_basename(utf8_filename);
Modified: trunk/src/filetypes.h =================================================================== --- trunk/src/filetypes.h 2007-04-18 12:01:06 UTC (rev 1459) +++ trunk/src/filetypes.h 2007-04-18 12:12:51 UTC (rev 1460) @@ -119,9 +119,13 @@ * and create the filetype menu*/ void filetypes_init_types();
-/* simple filetype selection based on the filename extension */ -filetype *filetypes_get_from_filename(gint idx); +/* Detect the filetype for document idx, checking for a shebang, then filename extension. */ +filetype *filetypes_detect_from_file(gint idx);
+/* Detect filetype based on the filename extension. + * utf8_filename can include the full path. */ +filetype *filetypes_detect_from_filename(const gchar *utf8_filename); + /* frees the array and all related pointers */ void filetypes_free_types();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.