Revision: 495 Author: eht16 Date: 2006-06-27 08:31:32 -0700 (Tue, 27 Jun 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=495&view=rev
Log Message: ----------- Add support for parsing compiler output for LaTeX with latex's --file-line-error-style command line argument. Removed unneeded function utils_free_ptr_array().
Modified Paths: -------------- trunk/ChangeLog trunk/data/filetypes.latex trunk/src/utils.c trunk/src/utils.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-06-27 15:29:33 UTC (rev 494) +++ trunk/ChangeLog 2006-06-27 15:31:32 UTC (rev 495) @@ -2,6 +2,10 @@
* data/filetypes.php, data/filetypes.pascal, src/callbacks.c, src/build.c: Parse stdout of compiler output too. + * src/utils.c, data/filetypes.latex: + Add support for parsing compiler output for LaTeX with latex's + --file-line-error-style command line argument. + Removed unneeded function utils_free_ptr_array().
2006-06-27 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/data/filetypes.latex =================================================================== --- trunk/data/filetypes.latex 2006-06-27 15:29:33 UTC (rev 494) +++ trunk/data/filetypes.latex 2006-06-27 15:31:32 UTC (rev 495) @@ -32,8 +32,8 @@ # %f will be replaced by the complete filename # %e will be replaced by the filename without extension # (use only one of it at one time) -compiler=latex "%f" +compiler=latex --file-line-error-style "%f" # it is called linker, but here it is an alternative compiler command -linker=pdflatex "%f" +linker=pdflatex --file-line-error-style "%f" run_cmd=xdvi "%f" run_cmd2=xpdf "%f"
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2006-06-27 15:29:33 UTC (rev 494) +++ trunk/src/utils.c 2006-06-27 15:31:32 UTC (rev 495) @@ -385,7 +385,8 @@ { static GList *tag_names = NULL;
- if (doc_list[idx].is_valid && doc_list[idx].tm_file && doc_list[idx].tm_file->tags_array) + if (idx >= 0 && doc_list[idx].is_valid && doc_list[idx].tm_file && + doc_list[idx].tm_file->tags_array) { TMTag *tag; guint i; @@ -769,9 +770,7 @@ gtk_widget_set_sensitive(app->tagbar, FALSE); gtk_container_add(GTK_CONTAINER(app->tagbar), app->default_tag_tree); } - } - }
@@ -1881,17 +1880,6 @@ }
-void utils_free_ptr_array(gchar *array[], gint len) -{ - gint i; - - for (i = 0; i < len; i++) - { - g_free(array[i]); - } -} - - void utils_update_fold_items(void) { gtk_widget_set_sensitive(lookup_widget(app->window, "menu_fold_all1"), app->pref_editor_folding); @@ -2327,10 +2315,11 @@ gchar *end = NULL; gchar *path; gchar **fields; - gchar *pattern; // pattern to split the error message into some fields - guint field_min_len; // used to detect errors after parsing - guint field_idx_line; // idx of the field where the line is - guint field_idx_file; // idx of the field where the filename is + gchar *pattern; // pattern to split the error message into some fields + guint field_min_len; // used to detect errors after parsing + guint field_idx_line; // idx of the field where the line is + guint field_idx_file; // idx of the field where the filename is + guint skip_dot_slash = 0; // number of characters to skip at the beginning of the filename *filename = NULL; *line = -1; @@ -2355,6 +2344,15 @@ field_idx_file = 0; break; } + case GEANY_FILETYPES_LATEX: + { + // ./kommtechnik_2b.tex:18: Emergency stop. + pattern = ":"; + field_min_len = 3; + field_idx_line = 1; + field_idx_file = 0; + break; + } case GEANY_FILETYPES_PHP: { // Parse error: parse error, unexpected T_CASE in brace_bug.php on line 3 @@ -2416,9 +2414,13 @@ return; }
+ // skip some characters at the beginning of the filename, at the moment only "./" + // can be extended if other "trash" is known + if (strncmp(fields[field_idx_file], "./", 2) == 0) skip_dot_slash = 2; + // get the basename of the built file to get the path to look for other files path = g_path_get_dirname(doc_list[app->cur_idx].file_name); - *filename = g_strconcat(path, G_DIR_SEPARATOR_S, fields[field_idx_file], NULL); + *filename = g_strconcat(path, G_DIR_SEPARATOR_S, fields[field_idx_file] + skip_dot_slash, NULL); g_free(path);
g_strfreev(fields);
Modified: trunk/src/utils.h =================================================================== --- trunk/src/utils.h 2006-06-27 15:29:33 UTC (rev 494) +++ trunk/src/utils.h 2006-06-27 15:31:32 UTC (rev 495) @@ -171,8 +171,6 @@
void utils_update_toolbar_icons(GtkIconSize size);
-void utils_free_ptr_array(gchar *array[], gint len); - void utils_update_recent_menu(void);
gboolean utils_get_setting_boolean(GKeyFile *config, const gchar *section, const gchar *key, const gboolean default_value);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.