Revision: 1372
http://svn.sourceforge.net/geany/?rev=1372&view=rev
Author: ntrel
Date: 2007-03-08 09:03:26 -0800 (Thu, 08 Mar 2007)
Log Message:
-----------
Updated Templates section for filetype templates and added some
subsection titles.
Modified Paths:
--------------
trunk/ChangeLog
trunk/doc/geany.docbook
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-03-08 13:32:03 UTC (rev 1371)
+++ trunk/ChangeLog 2007-03-08 17:03:26 UTC (rev 1372)
@@ -3,6 +3,9 @@
* src/document.c:
Fix not setting existing project typenames for C-like files if they
don't contain typenames themselves (bug introduced in r1323).
+ * doc/geany.docbook:
+ Updated Templates section for filetype templates and added some
+ subsection titles.
2007-03-08 Enrico Tröger <enrico.troeger(a)uvena.de>
Modified: trunk/doc/geany.docbook
===================================================================
--- trunk/doc/geany.docbook 2007-03-08 13:32:03 UTC (rev 1371)
+++ trunk/doc/geany.docbook 2007-03-08 17:03:26 UTC (rev 1372)
@@ -1856,14 +1856,23 @@
<section id="templates">
<title>Templates</title>
<para>
- <application>Geany</application> supports several templates for file headers,
- function descriptions, a typical ChangeLog entry
- and a short GPL notice. To use these templates, just open the Edit menu or open the
+ <application>Geany</application> supports the following templates:
+ </para>
+ <itemizedlist>
+ <listitem><para>ChangeLog entry</para></listitem>
+ <listitem><para>File header</para></listitem>
+ <listitem><para>Function description</para></listitem>
+ <listitem><para>Short GPL notice</para></listitem>
+ <listitem><para>Short BSD notice</para></listitem>
+ <listitem><para>Filetype template</para></listitem>
+ </itemizedlist>
+ <para>
+ To use these templates, just open the Edit menu or open the
popup menu by right-clicking in the editor widget, and choose "Insert Comments" and
insert templates as you want.
</para>
<para>
- Some templates (like file header or ChangeLog entry) will always be inserted at the
+ Some templates (like File header or ChangeLog entry) will always be inserted at the
top of the file.
</para>
<para>
@@ -1873,32 +1882,63 @@
of a function or the function name cannot be determined, you cannot insert a function
description.
</para>
+ <section>
+ <title>Filetype templates</title>
<para>
- Each template can be customized to your needs. The templates are in the configuration
- directory, which is in <filename>~/.geany/templates/</filename> (see <xref linkend="clo"/>
- for further information about the configuration directory). Just open the desired
- template with an editor (ideally <application>Geany</application> ;-) ) and edit
- the template as your needs. There are some wildcards which will be automatically
- replaced by <application>Geany</application> at startup.
+ Filetype templates are templates used as the basis of a new file. To use them, choose
+ the <literal>New (with Template)</literal> menu item from the
+ <literal>File</literal> menu. At creation of a new file with a filetype template, the
+ fileheader template is automatically prepended.
</para>
<para>
- All wildcards must be enclosed by "{" and "}", e.g. {date}.
+ By default, templates are created for certain filetypes. Other filetype templates can be
+ added by creating the appropriate template file and restarting
+ <application>Geany</application>.
</para>
<para>
+ Filetype template files are read from the <filename>~/.geany/templates</filename>
+ directory, and are named '<filename>filetype.</filename>'
+ followed by the filetype name, e.g. <filename>filetype.python</filename>,
+ <filename>filetype.sh</filename>. If you are unsure about the filetype name extensions,
+ they are the same as the filetype configuration file extensions, commonly installed
+ in <filename>/usr/share/geany</filename>, with the prefix
+ '<filename>filetypes.</filename>'.
+ </para>
+ <para>
+ There is also a template file <filename>template.none</filename> which is used when
+ the <literal>New</literal> command is used without a filetype. This is empty by
+ default.
+ </para>
+ </section>
+ <section>
+ <title>Template metadata</title>
+ <para>
+ Metadata can be used with all templates, but by default user set metadata is only
+ used for the ChangeLog and File header templates.
+ </para>
+ <para>
In the configuration dialog you can find a tab "Templates"
(see <xref linkend="confdialog_templ"/>). You can define the default values which
will be inserted in the templates. You should restart <application>Geany</application>
after making changes, because they are only read at startup.
</para>
+ </section>
+ <section>
+ <title>Customizing templates</title>
<para>
- Since <application>Geany</application> 0.3 there are also templates for creating new
- files. They can be found in <filename>~/.&app_small;/</filename>, too. All template
- files for creating new files begin with <filename>template.filetype.</filename>
- followed by the filetype. At creating a new file with a filetype template, the
- template for the fileheader is automatically prepended.
+ Each template can be customized to your needs. The templates are stored in the
+ <filename>~/.geany/templates/</filename> directory (see <xref linkend="clo"/>
+ for further information about the configuration directory). Just open the desired
+ template with an editor (ideally <application>Geany</application> ;-) ) and edit
+ the template to your needs. There are some wildcards which will be automatically
+ replaced by <application>Geany</application> at startup.
</para>
- <para> </para>
+ <section>
+ <title>Template wildcards</title>
<para>
+ All wildcards must be enclosed by "{" and "}", e.g. {date}.
+ </para>
+ <para>
<table frame="all">
<title>Template wildcards</title>
<tgroup cols="3">
@@ -2006,6 +2046,8 @@
If you need any other wildcards or a special date/time format, please email the
author <email>&author_mail;</email>.
</para>
+ </section>
+ </section>
</section>
</chapter>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 1369
http://svn.sourceforge.net/geany/?rev=1369&view=rev
Author: ntrel
Date: 2007-03-06 08:57:09 -0800 (Tue, 06 Mar 2007)
Log Message:
-----------
Speed up loading multiple C-like files when existing documents are
open (by ensuring documents are only colourised once).
Add document_open_files(), document_colourise_new().
Add some missing function parameter names to document.h.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/callbacks.c
trunk/src/document.c
trunk/src/document.h
trunk/src/keyfile.c
trunk/src/main.c
trunk/src/socket.c
trunk/src/win32.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/ChangeLog 2007-03-06 16:57:09 UTC (rev 1369)
@@ -1,3 +1,13 @@
+2007-03-06 Nick Treleaven <nick.treleaven(a)btinternet.com>
+
+ * src/win32.c, src/callbacks.c, src/keyfile.c, src/document.c,
+ src/document.h, src/main.c, src/socket.c:
+ Speed up loading multiple C-like files when existing documents are
+ open (by ensuring documents are only colourised once).
+ Add document_open_files(), document_colourise_new().
+ Add some missing function parameter names to document.h.
+
+
2007-03-05 Enrico Tröger <enrico.troeger(a)uvena.de>
* doc/geany.docbook:
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/callbacks.c 2007-03-06 16:57:09 UTC (rev 1369)
@@ -780,7 +780,6 @@
if (response == GTK_RESPONSE_ACCEPT || response == GTK_RESPONSE_APPLY)
{
GSList *filelist;
- GSList *flist;
gint filetype_idx = gtk_combo_box_get_active(GTK_COMBO_BOX(
lookup_widget(GTK_WIDGET(dialog), "filetype_combo")));
gint encoding_idx = gtk_combo_box_get_active(GTK_COMBO_BOX(
@@ -794,15 +793,10 @@
charset = encodings[encoding_idx].charset;
filelist = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(app->open_filesel));
- flist = filelist;
- while (flist != NULL)
+ if (filelist != NULL)
{
- if (g_file_test((gchar*) flist->data, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_SYMLINK))
- {
- document_open_file(-1, (gchar*) flist->data, 0, ro, ft, charset);
- }
- g_free(flist->data);
- flist = flist->next;
+ document_open_files(filelist, ro, ft, charset);
+ g_slist_foreach(filelist, (GFunc) g_free, NULL); // free filenames
}
g_slist_free(filelist);
}
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/document.c 2007-03-06 16:57:09 UTC (rev 1369)
@@ -711,9 +711,10 @@
/* To open a new file, set idx to -1; filename should be locale encoded.
* To reload a file, set the idx for the document to be reloaded; filename should be NULL.
* Returns: idx of the opened file or -1 if an error occurred.
- */
-int document_open_file(gint idx, const gchar *filename, gint pos, gboolean readonly, filetype *ft,
- const gchar *forced_enc)
+ * Note: If opening more than one file, document_delay_colourise() should be used before
+ * and document_colourise_new() after opening to avoid unnecessary recolourising. */
+gint document_open_file(gint idx, const gchar *filename, gint pos, gboolean readonly,
+ filetype *ft, const gchar *forced_enc)
{
gint editor_mode;
gboolean reload = (idx == -1) ? FALSE : TRUE;
@@ -859,6 +860,8 @@
default: list = g_strsplit(data, "\n", 0);
}
+ document_delay_colourise();
+
for (i = 0; ; i++)
{
if (list[i] == NULL) break;
@@ -867,11 +870,29 @@
document_open_file(-1, filename, 0, FALSE, NULL, NULL);
g_free(filename);
}
+ document_colourise_new();
g_strfreev(list);
}
+/* Takes a linked list of filename URIs and opens each file, ensuring the newly opened
+ * documents and existing documents (if necessary) are only colourised once. */
+void document_open_files(const GSList *filenames, gboolean readonly, filetype *ft,
+ const gchar *forced_enc)
+{
+ const GSList *item;
+
+ document_delay_colourise();
+
+ for (item = filenames; item != NULL; item = g_slist_next(item))
+ {
+ document_open_file(-1, item->data, 0, readonly, ft, forced_enc);
+ }
+ document_colourise_new();
+}
+
+
gint document_reload_file(gint idx, const gchar *forced_enc)
{
gint pos = 0;
@@ -1264,7 +1285,7 @@
ttf.chrg.cpMin = start;
ttf.chrg.cpMax = end;
ttf.lpstrText = (gchar*)find_text;
-
+
while (TRUE)
{
search_pos = sci_find_text(doc_list[idx].sci, flags, &ttf);
@@ -1295,7 +1316,7 @@
{ // scroll last match in view, will destroy the existing selection
if (scroll_to_match)
sci_goto_pos(doc_list[idx].sci, ttf.chrg.cpMin, TRUE);
-
+
return end;
}
else
@@ -1328,9 +1349,9 @@
if (selection_mode == SC_SEL_RECTANGLE && selected_lines > 1)
{
gint first_line, line, line_start, line_end, tmp;
-
+
sci_start_undo_action(doc_list[idx].sci);
-
+
first_line = sci_get_line_from_position(doc_list[idx].sci, selection_start);
// Find the last line with chars selected (not EOL char)
last_line = sci_get_line_from_position(doc_list[idx].sci, selection_end - 1);
@@ -1339,7 +1360,7 @@
{
line_start = sci_get_pos_at_line_sel_start(doc_list[idx].sci, line);
line_end = sci_get_pos_at_line_sel_end(doc_list[idx].sci, line);
-
+
// skip line if there is no selection
if (line_start != INVALID_POSITION)
{
@@ -1348,7 +1369,7 @@
line_start, line_end, escaped_chars, FALSE);
if (tmp != -1)
{
- replaced = TRUE;
+ replaced = TRUE;
// this gets the greatest column within the selection after replacing
max_column = MAX(max_column,
tmp - sci_get_position_from_line(doc_list[idx].sci, line));
@@ -1364,15 +1385,15 @@
if (selection_end != -1)
replaced = TRUE;
}
-
+
if (replaced)
{ // update the selection for the new endpoint
-
+
if (selection_mode == SC_SEL_RECTANGLE && selected_lines > 1)
{
// now we can scroll to the selection and destroy it because we rebuild it later
//sci_goto_pos(doc_list[idx].sci, selection_start, FALSE);
-
+
// Note: the selection will be wrapped to last_line + 1 if max_column is greater than
// the highest column on the last line. The wrapped selection is completely different
// from the original one, so skip the selection at all
@@ -1388,12 +1409,12 @@
sci_set_selection_mode(doc_list[idx].sci, selection_mode);
}
}
- else
+ else
{
sci_set_selection_start(doc_list[idx].sci, selection_start);
sci_set_selection_end(doc_list[idx].sci, selection_end);
}
- }
+ }
else // no replacements
utils_beep();
}
@@ -1563,7 +1584,9 @@
document_update_tag_list(idx, TRUE);
if (! delay_colourise)
{
- if (colourise && ! update_type_keywords(doc_list[idx].sci))
+ /* Check if project typename keywords have changed.
+ * If they haven't, we may need to colourise the document. */
+ if (! update_type_keywords(doc_list[idx].sci) && colourise)
sci_colourise(doc_list[idx].sci, 0, -1);
}
}
@@ -2069,31 +2092,67 @@
#endif
+static GArray *doc_indexes = NULL;
+
+/* Cache the current document indexes and prevent any colourising until
+ * document_colourise_new() is called. */
void document_delay_colourise()
{
+ gint n;
+
g_return_if_fail(delay_colourise == FALSE);
+ g_return_if_fail(doc_indexes == NULL);
+ // make an array containing all the current document indexes
+ doc_indexes = g_array_new(FALSE, FALSE, sizeof(gint));
+ for (n = 0; n < (gint) doc_array->len; n++)
+ {
+ if (DOC_IDX_VALID(n))
+ g_array_append_val(doc_indexes, n);
+ }
delay_colourise = TRUE;
}
-void document_colourise_all()
+/* Colourise only newly opened documents and existing documents whose project typenames
+ * keywords have changed.
+ * document_delay_colourise() should already have been called. */
+void document_colourise_new()
{
- guint n;
+ guint n, i;
+ /* A bitset representing which docs need [re]colourising.
+ * (use gint8 to save memory because gboolean = gint) */
+ gint8 *doc_set = g_newa(gint8, doc_array->len);
+ gboolean recolour = FALSE; // whether to recolourise existing typenames
g_return_if_fail(delay_colourise == TRUE);
+ g_return_if_fail(doc_indexes != NULL);
- // update typenames if necessary
- update_type_keywords(NULL);
+ // first assume recolourising all docs
+ memset(doc_set, TRUE, doc_array->len * sizeof(gint8));
- for (n = 0; n < doc_array->len; n++)
+ // remove existing docs from the set if they don't use typenames or typenames haven't changed
+ recolour = update_type_keywords(NULL);
+ for (i = 0; i < doc_indexes->len; i++)
{
- ScintillaObject *sci = doc_list[n].sci;
+ ScintillaObject *sci;
- if (sci)
- sci_colourise(sci, 0, -1);
+ n = g_array_index(doc_indexes, gint, i);
+ sci = doc_list[n].sci;
+ if (! recolour || (sci && sci_cb_lexer_get_type_keyword_idx(sci_get_lexer(sci)) == -1))
+ {
+ doc_set[n] = FALSE;
+ }
}
+ // colourise all in the doc_set
+ for (n = 0; n < doc_array->len; n++)
+ {
+ if (doc_set[n] && doc_list[n].is_valid)
+ sci_colourise(doc_list[n].sci, 0, -1);
+ }
delay_colourise = FALSE;
+ g_array_free(doc_indexes, TRUE);
+ doc_indexes = NULL;
}
Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/document.h 2007-03-06 16:57:09 UTC (rev 1369)
@@ -116,7 +116,7 @@
void document_finalize();
-void document_set_text_changed(gint);
+void document_set_text_changed(gint idx);
// Apply just the prefs that can change in the Preferences dialog
@@ -134,20 +134,24 @@
gint document_new_file(const gchar *filename, filetype *ft);
-/* If idx is set to -1, it creates a new tab, opens the file from filename and
- * set the cursor to pos.
- * If idx is greater than -1, it reloads the file in the tab corresponding to
- * idx and set the cursor to position 0. In this case, filename should be NULL
- * It returns the idx of the opened file or -1 if an error occurred.
- */
-gint document_open_file(gint, const gchar*, gint, gboolean, filetype*, const gchar*);
+/* To open a new file, set idx to -1; filename should be locale encoded.
+ * To reload a file, set the idx for the document to be reloaded; filename should be NULL.
+ * Returns: idx of the opened file or -1 if an error occurred.
+ * Note: If opening more than one file, document_delay_colourise() should be used before
+ * and document_colourise_new() after opening to avoid unnecessary recolourising. */
+gint document_open_file(gint idx, const gchar *filename, gint pos, gboolean readonly,
+ filetype *ft, const gchar *forced_enc);
-
/* Takes a new line separated list of filename URIs and opens each file.
* length is the length of the string or -1 if it should be detected */
void document_open_file_list(const gchar *data, gssize length);
+/* Takes a linked list of filename URIs and opens each file, ensuring the newly opened
+ * documents and existing documents (if necessary) are only colourised once. */
+void document_open_files(const GSList *filenames, gboolean readonly, filetype *ft,
+ const gchar *forced_enc);
+
gint document_reload_file(gint idx, const gchar *forced_enc);
@@ -170,15 +174,17 @@
gboolean document_replace_all(gint idx, const gchar *find_text, const gchar *replace_text,
gint flags, gboolean escaped_chars);
-void document_replace_sel(gint, const gchar*, const gchar*, gint, gboolean);
+void document_replace_sel(gint idx, const gchar *find_text, const gchar *replace_text, gint flags,
+ gboolean escaped_chars);
-void document_set_font(gint, const gchar*, gint);
+void document_set_font(gint idx, const gchar *font_name, gint size);
-void document_update_tag_list(gint, gboolean);
+void document_update_tag_list(gint idx, gboolean update);
-void document_set_filetype(gint, filetype*);
+/* sets the filetype of the document (sets syntax highlighting and tagging) */
+void document_set_filetype(gint idx, filetype *type);
-gchar *document_get_eol_mode(gint);
+gchar *document_get_eol_mode(gint idx);
void document_fold_all(gint idx);
@@ -238,6 +244,6 @@
void document_delay_colourise();
-void document_colourise_all();
+void document_colourise_new();
#endif
Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/keyfile.c 2007-03-06 16:57:09 UTC (rev 1369)
@@ -574,7 +574,7 @@
if (i < 0) break;
}
}
- document_colourise_all();
+ document_colourise_new();
g_ptr_array_free(session_files, TRUE);
if (failure)
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/main.c 2007-03-06 16:57:09 UTC (rev 1369)
@@ -531,7 +531,7 @@
}
g_free(filename);
}
- document_colourise_all();
+ document_colourise_new();
return TRUE;
}
Modified: trunk/src/socket.c
===================================================================
--- trunk/src/socket.c 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/socket.c 2007-03-06 16:57:09 UTC (rev 1369)
@@ -409,6 +409,8 @@
{
if (strncmp(buf, "open", 4) == 0)
{
+ document_delay_colourise();
+
while (socket_fd_gets(sock, buf, sizeof(buf)) != -1 && *buf != '.')
{
g_strstrip(buf); // remove \n char
@@ -426,6 +428,8 @@
geany_debug("got data from socket, but it does not look like a filename");
}
}
+ document_colourise_new();
+
gtk_window_deiconify(GTK_WINDOW(app->window));
#ifdef G_OS_WIN32
gtk_window_present(GTK_WINDOW(app->window));
@@ -436,7 +440,7 @@
while (socket_fd_gets(sock, buf, sizeof(buf)) != -1 && *buf != '.')
{
g_strstrip(buf); // remove \n char
- // on any error we get 0 which should be save enough as fallback
+ // on any error we get 0 which should be safe enough as fallback
cl_options.goto_line = atoi(buf);
}
}
@@ -445,7 +449,7 @@
while (socket_fd_gets(sock, buf, sizeof(buf)) != -1 && *buf != '.')
{
g_strstrip(buf); // remove \n char
- // on any error we get 0 which should be save enough as fallback
+ // on any error we get 0 which should be safe enough as fallback
cl_options.goto_column = atoi(buf);
}
}
Modified: trunk/src/win32.c
===================================================================
--- trunk/src/win32.c 2007-03-05 21:07:09 UTC (rev 1368)
+++ trunk/src/win32.c 2007-03-06 16:57:09 UTC (rev 1369)
@@ -311,7 +311,9 @@
document_open_file(-1, fname, 0, of.Flags & OFN_READONLY, NULL, NULL);
}
else
- { // open mutiple files
+ { // open multiple files
+ document_delay_colourise();
+
for (; ;)
{
if (! fname[x])
@@ -323,6 +325,7 @@
}
x++;
}
+ document_colourise_new();
}
}
else
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 1368
http://svn.sourceforge.net/geany/?rev=1368&view=rev
Author: eht16
Date: 2007-03-05 13:07:09 -0800 (Mon, 05 Mar 2007)
Log Message:
-----------
Added single line comment examples for clarification.
Modified Paths:
--------------
trunk/ChangeLog
trunk/doc/geany.docbook
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-03-05 12:44:02 UTC (rev 1367)
+++ trunk/ChangeLog 2007-03-05 21:07:09 UTC (rev 1368)
@@ -1,3 +1,9 @@
+2007-03-05 Enrico Tröger <enrico.troeger(a)uvena.de>
+
+ * doc/geany.docbook:
+ Added single line comment examples for clarification.
+
+
2007-03-05 Nick Treleaven <nick.treleaven(a)btinternet.com>
* src/build.c, src/project.c, src/project.h:
Modified: trunk/doc/geany.docbook
===================================================================
--- trunk/doc/geany.docbook 2007-03-05 12:44:02 UTC (rev 1367)
+++ trunk/doc/geany.docbook 2007-03-05 21:07:09 UTC (rev 1368)
@@ -1586,7 +1586,8 @@
<programlisting># command_example();</programlisting>
</para></example></para>
<note><para>
- This setting only works for single line comments.
+ This setting only works for single line comments
+ (like '//', '#' or ';').
</para></note>
</entry>
<entry>comment_use_indent=true</entry>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 1367
http://svn.sourceforge.net/geany/?rev=1367&view=rev
Author: ntrel
Date: 2007-03-05 04:44:02 -0800 (Mon, 05 Mar 2007)
Log Message:
-----------
Use exact executable name in run command error message. Edit tooltip.
Modified Paths:
--------------
trunk/src/build.c
Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c 2007-03-05 12:13:09 UTC (rev 1366)
+++ trunk/src/build.c 2007-03-05 12:44:02 UTC (rev 1367)
@@ -197,11 +197,10 @@
// (RUN_SCRIPT_CMD should be ok in UTF8 without converting in locale because it contains no umlauts)
if (! build_create_shellscript(RUN_SCRIPT_CMD, locale_cmd_string, TRUE))
{
- gchar *utf8_check_executable = utils_remove_ext_from_filename(doc_list[idx].file_name);
msgwin_status_add(_("Failed to execute \"%s\" (start-script could not be created)"),
- utf8_check_executable);
+ executable);
utils_free_pointers(executable, view_file, locale_filename, cmd_string, locale_cmd_string,
- utf8_check_executable, locale_term_cmd, NULL);
+ locale_term_cmd, NULL);
g_strfreev(term_argv);
return (GPid) 1;
}
@@ -581,7 +580,7 @@
// (RUN_SCRIPT_CMD should be ok in UTF8 without converting in locale because it contains no umlauts)
if (! build_create_shellscript(RUN_SCRIPT_CMD, cmd, autoclose))
{
- utf8_check_executable = utils_remove_ext_from_filename(doc_list[idx].file_name);
+ utf8_check_executable = utils_get_utf8_from_locale(check_executable);
msgwin_status_add(_("Failed to execute \"%s\" (start-script could not be created)"),
utf8_check_executable);
}
@@ -1159,7 +1158,7 @@
gtk_widget_show(item);
gtk_container_add(GTK_CONTAINER(menu), item);
GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN, item);
- gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
+ gtk_tooltips_set_tip(tooltips, item, _("Compile and view the current file"), NULL);
image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
gtk_widget_show(image);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
@@ -1172,7 +1171,7 @@
gtk_widget_show(item);
gtk_container_add(GTK_CONTAINER(menu), item);
GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN2, item);
- gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
+ gtk_tooltips_set_tip(tooltips, item, _("Compile and view the current file"), NULL);
image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
gtk_widget_show(image);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.