diff --git a/moo.mprj b/moo.mprj index 9d67ad0f..f30087f9 100644 --- a/moo.mprj +++ b/moo.mprj @@ -13,8 +13,8 @@ --enable-debug=full --enable-all-warnings --enable-project - -g -g + -g @@ -37,8 +37,8 @@ build/optimized - -O2 -g -O2 -g + -O2 -g diff --git a/moo/mooedit/moocommand-exe-unix.c b/moo/mooedit/moocommand-exe-unix.c index b3f21ff3..1548b0a0 100644 --- a/moo/mooedit/moocommand-exe-unix.c +++ b/moo/mooedit/moocommand-exe-unix.c @@ -241,8 +241,9 @@ run_in_pane (MooCommandExe *cmd, if (filter) { - const char *fn = MOO_IS_EDIT (doc) ? moo_edit_get_filename (MOO_EDIT (doc)) : NULL; + char *fn = MOO_IS_EDIT (doc) ? moo_edit_get_filename (MOO_EDIT (doc)) : NULL; moo_output_filter_set_active_file (filter, fn); + g_free (fn); } moo_cmd_view_set_filter (MOO_CMD_VIEW (output), filter); @@ -351,12 +352,15 @@ create_environment (MooCommandContext *ctx, *envp = NULL; } + *working_dir = NULL; doc = moo_command_context_get_doc (ctx); - if (doc && moo_edit_get_filename (doc)) - *working_dir = g_path_get_dirname (moo_edit_get_filename (doc)); - else - *working_dir = NULL; + if (doc && !moo_edit_is_untitled (doc)) + { + char *filename = moo_edit_get_filename (doc); + *working_dir = g_path_get_dirname (filename); + g_free (filename); + } } diff --git a/moo/mooedit/moocommand.c b/moo/mooedit/moocommand.c index c2324c34..27957de5 100644 --- a/moo/mooedit/moocommand.c +++ b/moo/mooedit/moocommand.c @@ -312,7 +312,7 @@ moo_command_check_sensitive_real (MooCommand *cmd, if ((cmd->options & MOO_COMMAND_NEED_DOC) && !doc) return FALSE; - if ((cmd->options & MOO_COMMAND_NEED_FILE) && (!MOO_IS_EDIT (doc) || !moo_edit_get_filename (doc))) + if ((cmd->options & MOO_COMMAND_NEED_FILE) && (!MOO_IS_EDIT (doc) || moo_edit_is_untitled (doc))) return FALSE; return TRUE; @@ -411,7 +411,7 @@ check_context (MooCommandOptions options, return FALSE; if ((options & MOO_COMMAND_NEED_FILE) && - !(MOO_IS_EDIT (doc) && moo_edit_get_filename (doc) != NULL)) + !(MOO_IS_EDIT (doc) && !moo_edit_is_untitled (doc))) return FALSE; if ((options & MOO_COMMAND_NEED_SAVE) && !MOO_IS_EDIT (doc)) @@ -442,9 +442,7 @@ moo_command_run (MooCommand *cmd, } else if (cmd->options & MOO_COMMAND_NEED_SAVE) { - if (!save_one (doc)) - return; - if (!moo_edit_get_filename (doc)) + if (!save_one (doc) || moo_edit_is_untitled (doc)) return; } diff --git a/moo/mooedit/mooedit-private.h b/moo/mooedit/mooedit-private.h index fe59bd3f..e89bdf41 100644 --- a/moo/mooedit/mooedit-private.h +++ b/moo/mooedit/mooedit-private.h @@ -98,6 +98,16 @@ void _moo_edit_create_progress_dialog (MooEdit *edit); void _moo_edit_set_progress_text (MooEdit *edit, const char *text); +GdkPixbuf *_moo_edit_get_icon (MooEdit *edit, + GtkWidget *widget, + GtkIconSize size); + +#define MOO_EDIT_IS_UNTITLED(edit) (!(edit)->priv->filename) + +struct _MooEditFileInfo { + char *filename; + char *encoding; +}; typedef enum { MOO_EDIT_LINE_END_NONE, @@ -117,7 +127,6 @@ struct _MooEditPrivate { /* Document */ char *filename; - char *basename; char *display_filename; char *display_basename; diff --git a/moo/mooedit/mooedit-script.c b/moo/mooedit/mooedit-script.c index eb804292..3d07e991 100644 --- a/moo/mooedit/mooedit-script.c +++ b/moo/mooedit/mooedit-script.c @@ -151,18 +151,23 @@ moo_edit_script_context_set_doc (MooEditScriptContext *ctx, if (MOO_IS_EDIT (doc)) { + char *filename = NULL, *basename = NULL; char *dirname = NULL, *base = NULL, *ext = NULL; - if (moo_edit_get_basename (MOO_EDIT (doc))) - get_extension (moo_edit_get_basename (MOO_EDIT (doc)), &base, &ext); + filename = moo_edit_get_filename (MOO_EDIT (doc)); - if (moo_edit_get_filename (MOO_EDIT (doc))) - dirname = g_path_get_dirname (moo_edit_get_filename (MOO_EDIT (doc))); + if (filename) + { + basename = g_path_get_basename (filename); - ms_value_dict_set_string (val, MS_VAR_FILE, - moo_edit_get_filename (MOO_EDIT (doc))); - ms_value_dict_set_string (val, MS_VAR_NAME, - moo_edit_get_basename (MOO_EDIT (doc))); + if (basename) + get_extension (basename, &base, &ext); + + dirname = g_path_get_dirname (filename); + } + + ms_value_dict_set_string (val, MS_VAR_FILE, filename); + ms_value_dict_set_string (val, MS_VAR_NAME, basename); ms_value_dict_set_string (val, MS_VAR_BASE, base); ms_value_dict_set_string (val, MS_VAR_DIR, dirname); ms_value_dict_set_string (val, MS_VAR_EXT, ext); @@ -170,6 +175,8 @@ moo_edit_script_context_set_doc (MooEditScriptContext *ctx, g_free (base); g_free (ext); g_free (dirname); + g_free (basename); + g_free (filename); } else { diff --git a/moo/mooedit/mooedit.c b/moo/mooedit/mooedit.c index d9e17337..ed1632b1 100644 --- a/moo/mooedit/mooedit.c +++ b/moo/mooedit/mooedit.c @@ -298,7 +298,6 @@ moo_edit_finalize (GObject *object) MooEdit *edit = MOO_EDIT (object); g_free (edit->priv->filename); - g_free (edit->priv->basename); g_free (edit->priv->display_filename); g_free (edit->priv->display_basename); g_free (edit->priv->encoding); @@ -502,7 +501,7 @@ moo_edit_is_empty (MooEdit *edit) g_return_val_if_fail (MOO_IS_EDIT (edit), FALSE); - if (MOO_EDIT_IS_BUSY (edit) || MOO_EDIT_IS_MODIFIED (edit) || edit->priv->filename) + if (MOO_EDIT_IS_BUSY (edit) || MOO_EDIT_IS_MODIFIED (edit) || !MOO_EDIT_IS_UNTITLED (edit)) return FALSE; gtk_text_buffer_get_bounds (get_buffer (edit), &start, &end); @@ -510,6 +509,13 @@ moo_edit_is_empty (MooEdit *edit) return !gtk_text_iter_compare (&start, &end); } +gboolean +moo_edit_is_untitled (MooEdit *edit) +{ + g_return_val_if_fail (MOO_IS_EDIT (edit), FALSE); + return MOO_EDIT_IS_UNTITLED (edit); +} + MooEditStatus moo_edit_get_status (MooEdit *edit) @@ -617,22 +623,15 @@ moo_edit_file_info_get_type (void) } -const char * +char * moo_edit_get_filename (MooEdit *edit) { g_return_val_if_fail (MOO_IS_EDIT (edit), NULL); - return edit->priv->filename; + return g_strdup (edit->priv->filename); } const char * -moo_edit_get_basename (MooEdit *edit) -{ - g_return_val_if_fail (MOO_IS_EDIT (edit), NULL); - return edit->priv->basename; -} - -const char * -moo_edit_get_display_filename (MooEdit *edit) +moo_edit_get_display_name (MooEdit *edit) { g_return_val_if_fail (MOO_IS_EDIT (edit), NULL); return edit->priv->display_filename; @@ -645,14 +644,6 @@ moo_edit_get_display_basename (MooEdit *edit) return edit->priv->display_basename; } -const char * -moo_edit_get_encoding (MooEdit *edit) -{ - g_return_val_if_fail (MOO_IS_EDIT (edit), NULL); - return edit->priv->encoding; -} - - char * moo_edit_get_uri (MooEdit *edit) { @@ -664,6 +655,13 @@ moo_edit_get_uri (MooEdit *edit) return NULL; } +const char * +moo_edit_get_encoding (MooEdit *edit) +{ + g_return_val_if_fail (MOO_IS_EDIT (edit), NULL); + return edit->priv->encoding; +} + static GtkTextBuffer * get_buffer (MooEdit *edit) diff --git a/moo/mooedit/mooedit.h b/moo/mooedit/mooedit.h index 531fc80b..2fbea4c1 100644 --- a/moo/mooedit/mooedit.h +++ b/moo/mooedit/mooedit.h @@ -58,11 +58,6 @@ typedef struct _MooEditPrivate MooEditPrivate; typedef struct _MooEditClass MooEditClass; -struct _MooEditFileInfo { - char *filename; - char *encoding; -}; - struct _MooEdit { MooTextView parent; @@ -92,19 +87,19 @@ struct _MooEditClass }; -GType moo_edit_get_type (void) G_GNUC_CONST; -GType moo_edit_file_info_get_type (void) G_GNUC_CONST; +GType moo_edit_get_type (void) G_GNUC_CONST; +GType moo_edit_file_info_get_type (void) G_GNUC_CONST; -const char *moo_edit_get_filename (MooEdit *edit); -const char *moo_edit_get_basename (MooEdit *edit); -const char *moo_edit_get_display_filename (MooEdit *edit); +char *moo_edit_get_uri (MooEdit *edit); +char *moo_edit_get_filename (MooEdit *edit); +char *moo_edit_get_basename (MooEdit *edit); +const char *moo_edit_get_display_name (MooEdit *edit); const char *moo_edit_get_display_basename (MooEdit *edit); const char *moo_edit_get_encoding (MooEdit *edit); -char *moo_edit_get_uri (MooEdit *edit); - gboolean moo_edit_is_empty (MooEdit *edit); +gboolean moo_edit_is_untitled (MooEdit *edit); void moo_edit_set_modified (MooEdit *edit, gboolean modified); gboolean moo_edit_get_clean (MooEdit *edit); diff --git a/moo/mooedit/mooeditdialogs.c b/moo/mooedit/mooeditdialogs.c index cf1f9fc5..83a1606a 100644 --- a/moo/mooedit/mooeditdialogs.c +++ b/moo/mooedit/mooeditdialogs.c @@ -136,7 +136,7 @@ _moo_edit_save_changes_dialog (MooEdit *edit) { GtkDialog *dialog = NULL; int response; - const char *name = moo_edit_get_display_basename (edit); + const char *name; g_return_val_if_fail (MOO_IS_EDIT (edit), MOO_EDIT_RESPONSE_CANCEL); name = moo_edit_get_display_basename (edit); diff --git a/moo/mooedit/mooeditfileops.c b/moo/mooedit/mooeditfileops.c index 1eb0e6a1..4fabd9ad 100644 --- a/moo/mooedit/mooeditfileops.c +++ b/moo/mooedit/mooeditfileops.c @@ -22,6 +22,7 @@ #include "mooedit/mooeditdialogs.h" #include "mooedit/mootextbuffer.h" #include "mooedit/mooeditprefs.h" +#include "moofileview/moofile.h" #include "mooutils/moofilewatch.h" #include "mooutils/mooencodings.h" #include "mooutils/mooi18n.h" @@ -1203,10 +1204,9 @@ _moo_edit_set_filename (MooEdit *edit, const char *file, const char *encoding) { - char *tmp1, *tmp2, *tmp3, *tmp4, *tmp5; + char *tmp1, *tmp3, *tmp4, *tmp5; tmp1 = edit->priv->filename; - tmp2 = edit->priv->basename; tmp3 = edit->priv->display_filename; tmp4 = edit->priv->display_basename; tmp5 = edit->priv->encoding; @@ -1219,7 +1219,6 @@ _moo_edit_set_filename (MooEdit *edit, int n = add_untitled (edit); edit->priv->filename = NULL; - edit->priv->basename = NULL; if (n == 1) edit->priv->display_filename = g_strdup (_("Untitled")); @@ -1230,15 +1229,17 @@ _moo_edit_set_filename (MooEdit *edit, } else { + char *basename; + remove_untitled (NULL, edit); edit->priv->filename = g_strdup (file); - edit->priv->basename = g_path_get_basename (file); + edit->priv->display_filename = _moo_edit_filename_to_utf8 (file); - edit->priv->display_filename = - _moo_edit_filename_to_utf8 (file); - edit->priv->display_basename = - _moo_edit_filename_to_utf8 (edit->priv->basename); + basename = g_path_get_basename (file); + edit->priv->display_basename = _moo_edit_filename_to_utf8 (basename); + + g_free (basename); } if (!encoding) @@ -1249,7 +1250,6 @@ _moo_edit_set_filename (MooEdit *edit, moo_edit_status_changed (edit); g_free (tmp1); - g_free (tmp2); g_free (tmp3); g_free (tmp4); g_free (tmp5); @@ -1282,3 +1282,12 @@ _moo_edit_filename_to_utf8 (const char *filename) return utf_filename; } + + +GdkPixbuf * +_moo_edit_get_icon (MooEdit *doc, + GtkWidget *widget, + GtkIconSize size) +{ + return _moo_get_icon_for_path (doc->priv->filename, widget, size); +} diff --git a/moo/mooedit/mooeditor.c b/moo/mooedit/mooeditor.c index e6703076..e4877387 100644 --- a/moo/mooedit/mooeditor.c +++ b/moo/mooedit/mooeditor.c @@ -802,11 +802,18 @@ window_info_remove (WindowInfo *win, static int edit_and_file_cmp (MooEdit *edit, const char *filename) { - const char *edit_filename; + char *edit_filename; + g_return_val_if_fail (MOO_IS_EDIT (edit) && filename != NULL, TRUE); + edit_filename = moo_edit_get_filename (edit); + if (edit_filename) - return strcmp (edit_filename, filename); + { + int result = strcmp (edit_filename, filename); + g_free (edit_filename); + return result; + } else return TRUE; } @@ -1023,9 +1030,9 @@ moo_editor_add_doc (MooEditor *editor, window_info_add (info, doc); - if (!moo_edit_get_filename (doc) && - !moo_edit_config_get_string (doc->config, "lang") && - editor->priv->default_lang) + if (moo_edit_is_untitled (doc) && + !moo_edit_config_get_string (doc->config, "lang") && + editor->priv->default_lang) { moo_edit_config_set (doc->config, MOO_EDIT_CONFIG_SOURCE_FILENAME, "lang", editor->priv->default_lang, NULL); @@ -1811,7 +1818,7 @@ static MooMarkupNode * save_doc_session (MooEdit *doc, MooMarkupNode *elm) { - const char *filename; + char *filename; const char *encoding; MooMarkupNode *node; @@ -1838,6 +1845,7 @@ save_doc_session (MooEdit *doc, node = moo_markup_create_element (elm, "document"); } + g_free (filename); return node; } @@ -2178,7 +2186,7 @@ _moo_editor_reload (MooEditor *editor, g_return_if_fail (info != NULL); /* XXX */ - g_return_if_fail (moo_edit_get_filename (doc) != NULL); + g_return_if_fail (!moo_edit_is_untitled (doc)); if (!editor->priv->silent && !MOO_EDIT_IS_CLEAN (doc) && @@ -2262,10 +2270,10 @@ _moo_editor_save (MooEditor *editor, info = window_list_find_doc (editor, doc); g_return_val_if_fail (info != NULL, FALSE); - if (!moo_edit_get_filename (doc)) + if (moo_edit_is_untitled (doc)) return _moo_editor_save_as (editor, doc, NULL, NULL, error); - filename = g_strdup (moo_edit_get_filename (doc)); + filename = moo_edit_get_filename (doc); encoding = g_strdup (moo_edit_get_encoding (doc)); if (!editor->priv->silent && diff --git a/moo/mooedit/mooeditwindow.c b/moo/mooedit/mooeditwindow.c index 6a7e5312..99367682 100644 --- a/moo/mooedit/mooeditwindow.c +++ b/moo/mooedit/mooeditwindow.c @@ -36,7 +36,6 @@ #include "mooutils/mooi18n.h" #include "mooutils/mooaction-private.h" #include "mooutils/moofiledialog.h" -#include "moofileview/moofile.h" #include #include #include @@ -973,7 +972,7 @@ static void moo_edit_window_get_property(GObject *object, case PROP_CAN_RELOAD: doc = ACTIVE_DOC (window); - g_value_set_boolean (value, doc && moo_edit_get_filename (doc)); + g_value_set_boolean (value, doc && !moo_edit_is_untitled (doc)); break; case PROP_HAS_OPEN_DOCUMENT: g_value_set_boolean (value, ACTIVE_DOC (window) != NULL); @@ -1095,7 +1094,7 @@ update_window_title (MooEditWindow *window) } if (window->priv->use_full_name) - name = moo_edit_get_display_filename (edit); + name = moo_edit_get_display_name (edit); else name = moo_edit_get_display_basename (edit); @@ -1144,6 +1143,7 @@ update_window_title (MooEditWindow *window) g_string_append_printf (title, doc_title_format, name); gtk_window_set_title (GTK_WINDOW (window), title->str); + g_string_free (title, TRUE); } @@ -2584,9 +2584,7 @@ update_tab_label (MooEditWindow *window, moo_edit_get_display_basename (doc)); gtk_label_set_text (GTK_LABEL (label), label_text); - /* XXX */ - pixbuf = _moo_get_icon_for_path (moo_edit_get_filename (doc), - icon, GTK_ICON_SIZE_MENU); + pixbuf = _moo_edit_get_icon (doc, icon, GTK_ICON_SIZE_MENU); set_tab_icon (icon, evbox, pixbuf); g_free (label_text); @@ -3736,11 +3734,16 @@ compare_doc_list_actions (gpointer a1, gpointer a2) { MooEdit *d1, *d2; + int result; + d1 = g_object_get_data (a1, "moo-edit"); d2 = g_object_get_data (a2, "moo-edit"); g_return_val_if_fail (d1 && d2, -1); - return strcmp (moo_edit_get_display_basename (d1), - moo_edit_get_display_basename (d2)); + + result = strcmp (moo_edit_get_display_basename (d1), + moo_edit_get_display_basename (d2)); + + return result; } @@ -3796,7 +3799,7 @@ do_update_doc_list (MooEditWindow *window) { g_object_set (action, "label", moo_edit_get_display_basename (doc), - "tooltip", moo_edit_get_display_filename (doc), + "tooltip", moo_edit_get_display_name (doc), NULL); } else @@ -3806,7 +3809,7 @@ do_update_doc_list (MooEditWindow *window) action = g_object_new (MOO_TYPE_RADIO_ACTION , "name", name, "label", moo_edit_get_display_basename (doc), - "tooltip", moo_edit_get_display_filename (doc), + "tooltip", moo_edit_get_display_name (doc), "use-underline", FALSE, NULL); g_object_set_data_full (doc, "moo-doc-list-action", action, g_object_unref); diff --git a/moo/mooedit/mootextprint.c b/moo/mooedit/mootextprint.c index 1824124f..1ac5de22 100644 --- a/moo/mooedit/mootextprint.c +++ b/moo/mooedit/mootextprint.c @@ -1622,9 +1622,12 @@ do_print_operation (GtkTextView *view, op->priv->parent = GTK_WINDOW (parent); if (MOO_IS_EDIT (view)) - moo_print_operation_set_filename (op, - moo_edit_get_display_filename (MOO_EDIT (view)), - moo_edit_get_display_basename (MOO_EDIT (view))); + { + const char *filename, *basename; + filename = moo_edit_get_display_name (MOO_EDIT (view)); + basename = moo_edit_get_display_basename (MOO_EDIT (view)); + moo_print_operation_set_filename (op, filename, basename); + } res = gtk_print_operation_run (GTK_PRINT_OPERATION (op), action, op->priv->parent, &error); diff --git a/moo/mooedit/moousertools.c b/moo/mooedit/moousertools.c index 0093dfb1..8c430804 100644 --- a/moo/mooedit/moousertools.c +++ b/moo/mooedit/moousertools.c @@ -1129,13 +1129,13 @@ create_command_context (gpointer window, ctx = moo_command_context_new (doc, window); - if (MOO_IS_EDIT (doc) && moo_edit_get_filename (doc)) + if (MOO_IS_EDIT (doc) && !moo_edit_is_untitled (doc)) { - const char *filename, *basename; + char *filename, *basename; char *dirname, *base = NULL, *extension = NULL; filename = moo_edit_get_filename (doc); - basename = moo_edit_get_basename (doc); + basename = filename ? g_path_get_basename (filename) : NULL; dirname = g_path_get_dirname (filename); get_extension (basename, &base, &extension); @@ -1147,6 +1147,8 @@ create_command_context (gpointer window, g_free (dirname); g_free (base); g_free (extension); + g_free (basename); + g_free (filename); } if (MOO_IS_EDIT (doc)) diff --git a/moo/mooedit/plugins/fileselector/moofileselector.c b/moo/mooedit/plugins/fileselector/moofileselector.c index becc1e68..933c7f13 100644 --- a/moo/mooedit/plugins/fileselector/moofileselector.c +++ b/moo/mooedit/plugins/fileselector/moofileselector.c @@ -337,7 +337,7 @@ static void goto_current_doc_dir (MooFileSelector *filesel) { MooEdit *doc; - const char *filename; + char *filename; doc = moo_edit_window_get_active_doc (filesel->window); filename = doc ? moo_edit_get_filename (doc) : NULL; @@ -349,6 +349,8 @@ goto_current_doc_dir (MooFileSelector *filesel) moo_file_selector_select_file (filesel, filename, dirname); g_free (dirname); } + + g_free (filename); } @@ -1092,7 +1094,9 @@ doc_move (MooFileSelector *filesel, { char *filename, *old_filename; - old_filename = g_strdup (moo_edit_get_filename (doc)); + old_filename = moo_edit_get_filename (doc); + /* XXX non-local */ + g_return_if_fail (old_filename != NULL); filename = save_as_dialog (GTK_WIDGET (filesel), destdir, moo_edit_get_display_basename (doc), @@ -1304,7 +1308,6 @@ moo_file_selector_drop_doc (MooFileSelector *filesel, int y, guint time) { - const char *filename; GdkModifierType mods; DropDocAction action; @@ -1312,9 +1315,7 @@ moo_file_selector_drop_doc (MooFileSelector *filesel, g_return_if_fail (destdir != NULL); g_return_if_fail (GTK_IS_WIDGET (widget)); - filename = moo_edit_get_filename (doc); - - if (!filename) + if (moo_edit_is_untitled (doc)) { gboolean result = drop_untitled (filesel, doc, destdir, widget, context, x, y, time); diff --git a/moo/mooedit/plugins/moofind.c b/moo/mooedit/plugins/moofind.c index dedb07f8..04c606d7 100644 --- a/moo/mooedit/plugins/moofind.c +++ b/moo/mooedit/plugins/moofind.c @@ -415,12 +415,15 @@ init_dir_entry (MooHistoryCombo *hist_combo, if (!gtk_entry_get_text(GTK_ENTRY (entry))[0]) { MooFileEntryCompletion *completion; + char *filename; completion = g_object_get_data (G_OBJECT (entry), "find-plugin-file-completion"); - if (doc && moo_edit_get_filename (doc)) + filename = doc ? moo_edit_get_filename (doc) : NULL; + + if (filename) { - char *dir = g_path_get_dirname (moo_edit_get_filename (doc)); + char *dir = g_path_get_dirname (filename); _moo_file_entry_completion_set_path (completion, dir); g_free (dir); } @@ -428,6 +431,8 @@ init_dir_entry (MooHistoryCombo *hist_combo, { _moo_file_entry_completion_set_path (completion, g_get_home_dir ()); } + + g_free (filename); } #if 0 diff --git a/moo/moopython/pygtk/mooedit-pygtk.defs b/moo/moopython/pygtk/mooedit-pygtk.defs index 9813b24a..97e6eb37 100644 --- a/moo/moopython/pygtk/mooedit-pygtk.defs +++ b/moo/moopython/pygtk/mooedit-pygtk.defs @@ -229,18 +229,12 @@ (define-method get_filename (of-object "MooEdit") (c-name "moo_edit_get_filename") - (return-type "const-char*") + (return-type "char*") ) -(define-method get_basename +(define-method get_display_name (of-object "MooEdit") - (c-name "moo_edit_get_basename") - (return-type "const-char*") -) - -(define-method get_display_filename - (of-object "MooEdit") - (c-name "moo_edit_get_display_filename") + (c-name "moo_edit_get_display_name") (return-type "const-char*") )