SF.net SVN: geany: [1573] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Fri May 25 15:19:23 UTC 2007
Revision: 1573
http://svn.sourceforge.net/geany/?rev=1573&view=rev
Author: eht16
Date: 2007-05-25 08:19:23 -0700 (Fri, 25 May 2007)
Log Message:
-----------
Add shebank-like detection for XML files.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/filetypes.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-05-25 14:42:43 UTC (rev 1572)
+++ trunk/ChangeLog 2007-05-25 15:19:23 UTC (rev 1573)
@@ -6,6 +6,7 @@
* geany.glade, src/callbacks.c, src/callbacks.h, src/geany.h,
src/interface.c, src/main.c, src/ui_utils.c:
Improve sensitivity of recent files sub menus.
+ * src/filetypes.c: Add shebank-like detection for XML files.
2007-05-25 Nick Treleaven <nick.treleaven at btinternet.com>
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2007-05-25 14:42:43 UTC (rev 1572)
+++ trunk/src/filetypes.c 2007-05-25 15:19:23 UTC (rev 1573)
@@ -574,7 +574,7 @@
gchar *line = sci_get_line(doc_list[idx].sci, 0);
filetype *ft = NULL;
- if (strlen(line) > 2 && line[0] == '#' && line[1]=='!')
+ if (strlen(line) > 2 && line[0] == '#' && line[1] == '!')
{
/// TODO does g_path_get_basename() also work under Win32 for Unix filenames?
gchar *basename_interpreter = g_path_get_basename(line + 2);
@@ -609,7 +609,21 @@
g_free(basename_interpreter);
}
+ // detect XML files
+ if (strncmp(line, "<?xml", 5) == 0)
+ {
+ // HTML and DocBook files might also start with <?xml, so detect them based on filename
+ // extension and use the detected filetype, else assume XML
+ ft = filetypes_detect_from_filename(doc_list[idx].file_name);
+ if (FILETYPE_ID(ft) != GEANY_FILETYPES_HTML &&
+ FILETYPE_ID(ft) != GEANY_FILETYPES_DOCBOOK &&
+ FILETYPE_ID(ft) != GEANY_FILETYPES_PERL && // Perl, Python and PHP only to be safe
+ FILETYPE_ID(ft) != GEANY_FILETYPES_PHP &&
+ FILETYPE_ID(ft) != GEANY_FILETYPES_PYTHON)
+ ft = filetypes[GEANY_FILETYPES_XML];
+ }
+
g_free(line);
return ft;
}
@@ -624,6 +638,7 @@
return filetypes[GEANY_FILETYPES_ALL];
// try to find a shebang and if found use it prior to the filename extension
+ // also checks for <?xml
ft = find_shebang(idx);
if (ft != NULL) return ft;
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